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