你有没有想过,如果能够理解 MySQL 的工作原理,那么在遇到问题的时候,是不是就能更快地直戳问题的本质?比如说,知道了索引的实现原理,那遇到索引问题的时候,你是不是就能从原理的角度,推断可能的解决方案?
林晓斌,网名“丁奇”,前阿里资深技术专家,曾负责阿里云 RDS 内核开发团队和运维团队,并推动了 AliSQL 分支开源。作为活跃的 MySQL 社区贡献者,丁奇专注于数据存储系统、MySQL 源码研究和改进、MySQL 性能优化和功能改进,热衷于解决 MySQL 疑难问题。
在这个专栏中,他将从基础架构、日志系统、事务隔离、索引、全局锁和表锁这 5 个基础问题入手,带你了解和掌握成功面试必备的数据库核心原理和技巧,帮你搞懂 MySQL。
本专栏共 5 个部分,合计 6 讲。
第一部分:基础架构。这一部分,我将与你介绍 MySQL 的逻辑架构,对一个 SQL 语句完整执行流程的各个阶段,希望你能够有一个初步的印象。
第二部分:日志系统。这一部分,我将与你介绍 MySQL 里面最重要的两个日志,即物理日志 redo log 和逻辑日志 binlog。
第三部分:事务隔离。这一部分,我将与你介绍 MySQL 的事务隔离级别的现象和实现,希望通过具体的案例,帮助你理解事务,以及如何更好地使用 MySQL 的事务特性。
第四部分:索引。这一部分,我将与你介绍索引的常见模型,MySQL 选择 B+ 树结构存储数据的原因,以及覆盖索引、前缀索引、索引下推这些基本概念。
第五部分:全局锁和表锁。这一部分,我将与你介绍在使用全局锁和表锁时会遇到的现象和背后的原理。