MySQL的MVCC的用法介绍
程序员文章站
2022-03-06 16:16:09
...
本篇文章给大家带来的内容是关于MySQL的MVCC的用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
MVCC(多版本并发控制)
作用:很多情况下可以避免加锁操作,降低开销。
InnoDB下的MVCC
通过在每行记录后面保存两个隐藏的列来实现,行的创建时间、行的过期时间(删除时间)。这里的时间指的是系统版本号,每开始一个新的事物,系统版本号都会自增。事物开始时刻的系统版本号会作为事物的版本号,用来和查询到的每行记录的版本号进行比较。
REPEATABLE READ隔离级别下MVCC的具体操作
SELECT
InnoDB 只查找版本早于当前事物版本的数据行(行的系统版本号 <= 事物的系统版本号),这样可以确保事物读取的行,要么是在事物开始前已经存在的,要么是事物自身插入或者修改过的。(也就是和其它事物是隔离的)
行的删除版本要么未定义,要么大于当前事物版本号。这样可以确保事物读取到的行,在事物开始之前未被删除。
符合上面两个条件的记录才能返回做完查询结果。
INSERT
InnoDB 为新插入的每一行保存当前系统版本号作为行版本号。
UPDATE
InnoDB 为插入一行新记录,保存当前系统版本号作为行版本号,同时保存当前系统版本号到原来的行作为行删除标识。
DELETE
InnoDB 为删除的每一行保存当前系统版本号作为删除标识。
本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的MySQL教程视频栏目!
以上就是MySQL的MVCC的用法介绍的详细内容,更多请关注其它相关文章!
上一篇: php-关于mysql数据库的小问题
推荐阅读
-
c#中LINQ的基本用法实例
-
C#连接MySQL的两个简单代码示例
-
基于StringBuilder类中的重要方法(介绍)
-
SQL Server 日期函数CAST 和 CONVERT 以及在业务中的使用介绍
-
SQLSERVER编译与重编译发生场景及重用的利弊介绍
-
sqlserver中关于WINDOWS性能计数器的介绍
-
详细介绍C#之文件校验工具的开发及问题
-
mySQL UNION运算符的默认规则研究
-
MySQL 客户端不输入用户名和密码直接连接数据库的2个方法
-
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)问题的解决