首页 > 数据库技术 > 详细

innodb快照读取

时间:2016-02-19 19:12:42      阅读:453      评论:0      收藏:0      [点我收藏+]

innodb 也实现了mvcc ,

 

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

 

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

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

 

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

 

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

 

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

 

insert update delete 是锁定行读取。

 

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

 

做个栗子

技术分享

 

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

innodb快照读取

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!