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

本文深入探讨了MySQL中的MVCC(多版本并发控制)机制,它依赖于undo log来实现并发控制。MVCC在InnoDB存储引擎中用于实现不同的隔离级别,如读已提交和可重复读。在聚簇索引中,每个记录包含额外的隐藏字段,如事务ID和回滚指针,以判断记录的可见性。对于非聚簇索引,通过二级索引查询时,利用页的最大事务ID来判断记录是否对当前事务可见。MVCC在提高并发性能的同时,确保了数据的一致性。
1万+

被折叠的 条评论
为什么被折叠?



