MVCC总结
聚簇索引
-
MySQL数据库中有两种方式来实现数据的可见性,一种是通过加锁的方式,另一种是通过MVCC来保证;MVCC全名为多版本并发控制,是基于undo log来实现的。
-
MySQL数据库中的记录除了用户自定义的字段外,还有三个隐藏字段,分别为ID,事务id及回滚指针;当用户记录没有自定义主键时,会添加一个id来表示主键,否则则没有id这个字段。而事务id及回滚指针是必有得。
-
读已提交的实现:
-
可重复读实现:
-
注意:只有对记录
非聚簇索引
- 当通过二级索引查询时,非聚簇索引中不包含隐藏字段事务id和回滚指针,如何判断该记录是否可见?
- 二级索引的每页有一个属性会保存修改该页的最大事务ID,当一个事务修改该页时,若该事务id大于该页的事务id值,则会进行更新。若readview的min_id
- 未写完待补充。。。。。