码迷,mamicode.com
首页 > 数据库 > 详细

innodb快照读取

时间:2016-02-19 19:13:01      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:mysql

innodb 也实现了mvcc ,

 

对于非锁定行读取 即非DML读取,也可以成为快照读取。

 

在一个事物中 ,事物开始的时候 ,会被分配一个全局的事物id,即把当前系统版本号作为当前事物的事物id,

这个当前系统版本号 会 随着 因事物的开启,和数据的dml 操作而递增。

 

而表的 每一行 也有两个版本号,一个是创建时间,一个是删除时间,也是系统版本号。

 

innodb 在读取的时候,只会读取 早于 或者等于该事物版本号的 行记录, 这有一个条件 就是 非锁定行读取, 就是平常的 select * from table,

 

而对于其他的 锁定行 dml读取 只会读取最新的数据行版本,

 

insert update delete 是锁定行读取。

 

总结 快照读取 只会读取 早于等于自己事物版本号的 行记录。

 

做个栗子

技术分享

 

本文出自 “JAVA那些事儿” 博客,请务必保留此出处http://1027187712.blog.51cto.com/5509347/1743457

innodb快照读取

标签:mysql

原文地址:http://1027187712.blog.51cto.com/5509347/1743457

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!