这篇博客会是一个导览文档,会记录这一个系列将会讲些什么问题。
目前打算将这个研究Mysql技术的使用和原理分为三个部分,索引、事务和业务上的使用三块方面,大体参考下面的列表:
- 索引
innodb 主键索引和辅助索引的底层数据结构实现细节
最左匹配原则
explain在解释什么东西 - 事务
事务 ACID特性
事务隔离级别带来的问题以及怎么解决的问题 - 业务
异地多活
这一系列文章是我在学习Mysql技术时,所遇到的疑问。一开始很多原理在看的时候,都是草草记忆,后续在使用或者回想起来,就会发现很多记忆的原理存在逻辑上的矛盾。给我印象最深,反转最大的一个例子就是Mysql Innodb事务中,默认的事务隔离级别重复读究竟能否防范住幻读的实现,一开始记忆的时候,高级别的事务隔离级别,会比低一个级别的事务隔离级别多解决一个问题,重复读(RR)会比读提交(RC)多解决一个不可重读的问题,但没法解决幻读这个问题。但在了解技术细节的时候,却觉得重复读已经可以解决幻读。于是就去查证,发现不仅美团技术文档在2014年的时候就发现了这事,而且Stackflow上也有回答说Mysql Innodb下的重复读无法复现幻读。Mysql Innodb真的很奇妙。
好,其他话便不多说了,之后更新的博客,会以超链接的方式放在上面的列表里。