MySQL的MVCC的用法介绍


本文摘自PHP中文网,作者不言,侵删。

本篇文章给大家带来的内容是关于MySQL的MVCC的用法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

MVCC(多版本并发控制)

作用:很多情况下可以避免加锁操作,降低开销。

InnoDB下的MVCC

通过在每行记录后面保存两个隐藏的列来实现,行的创建时间、行的过期时间(删除时间)。这里的时间指的是系统版本号,每开始一个新的事物,系统版本号都会自增。事物开始时刻的系统版本号会作为事物的版本号,用来和查询到的每行记录的版本号进行比较。

REPEATABLE READ隔离级别下MVCC的具体操作

SELECT

InnoDB 只查找版本早于当前事物版本的数据行(行的系统版本号 <= 事物的系统版本号),这样可以确保事物读取的行,要么是在事物开始前已经存在的,要么是事物自身插入或者修改过的。(也就是和其它事物是隔离的)

行的删除版本要么未定义,要么大于当前事物版本号。这样可以确保事物读取到的行,在事物开始之前未被删除。

符合上面两个条件的记录才能返回做完查询结果。

INSERT

InnoDB 为新插入的每一行保存当前系统版本号作为行版本号。

UPDATE

InnoDB 为插入一行新记录,保存当前系统版本号作为行版本号,同时保存当前系统版本号到原来的行作为行删除标识。

DELETE

InnoDB 为删除的每一行保存当前系统版本号作为删除标识。

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的MySQL教程视频栏目!

以上就是MySQL的MVCC的用法介绍的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql 权限控制细节分析

mysql权限管理grant命令使笔记

mysql出现1044错误怎么办

忘记mysql密码了!?莫慌~

怎么查看mysql是否成功启动?

mysql中视图的用法介绍(代码示例)

mysql中普通索引和唯一索引的区别详解

windows如何启动mysql

分析mysql抛出异常的几种常见解决方式

mysql如何查询所有表和字段信息

更多相关阅读请进入《InnoDB》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...