mvcc

来源:3-16 锁模块之当前读和快照读

大昶子

2019-08-22

老师好~我看《高性能mysql》上面说的mvcc是每个数据行隐藏两个列,一个是行创建时的系统版本号,一个是行删除时的系统版本号,感觉它说的这个是简略版吧,而且它说的那个select的条件快照读似乎不一定拿到最新的数据?感觉mvcc好难啊,不是很好理解。

写回答

2回答

fanfantastic

2019-09-12

书上说的不是很准确,确实容易误导人,翔仔老师在课程中说的还是比较准确的。

推荐一款工具innodb_ruby,像是MVCC依赖的undo日志、行的undo指针、行的事务id、甚至是B+树等等都可以通过这个工具分析,项目地址:https://github.com/jeremycole/innodb_ruby

另外,学习InnoDB内核知识,这本书更加适合,《MySQL技术内幕:InnoDB存储引擎(第2版)》

1
0

翔仔

2019-08-22

同学好,mvcc如果要详细了解得直接看源码,得耐得住寂寞,光从理解的角度的话,其实就是一种版本控制的策略,但是版本控制的时候mysql又不想实现真正的mvcc,也就是保留的版本并不是多份,因此做了一些hack,导致理解起来不是那么容易,但是我觉得这个东西,大致理解其原理,然后能说出来就可以了,由于咱们不是DBA,因此可以不做过深的了解

1
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程