数据库是一个综合系统,其背后是发展了几十年的数据库理论。也许你会觉得数据库并不难,因为你可以熟练地写出 SQL,也可以在各个客户端里玩得游刃有余。但就以最常见的 MySQL 为例,作为程序员,你在使用 MySQL 的过程中,是不是曾经遇到过类似的问题:
- 为什么我的 count(*) 这么慢?
- 为什么我建了索引,却根本没有效果?
- 为什么我只查一行的语句,也执行这么慢?
- MySQL 对于大表要怎么优化?
之前,你大概都是通过搜索别人的经验来解决问题。你有没有想过,如果能够理解 MySQL 的工作原理,那么在遇到问题的时候,是不是就能更快地直戳问题的本质?比如说,知道了索引的实现原理,那遇到索引问题的时候,你是不是就能从原理的角度,推断可能的解决方案?
本专栏将会以实战中的常见问题为切入点,带你剖析现象背后的本质原因。更重要的是,本专栏还将通过几条主线为你串起各个零散的知识点,再由线到面带你构建 MySQL 知识体系。
林晓斌,网名“丁奇”,前阿里资深技术专家,曾负责阿里云 RDS 内核开发团队和运维团队,并推动了 AliSQL 分支开源。作为活跃的 MySQL 社区贡献者,丁奇专注于数据存储系统、MySQL 源码研究和改进、MySQL 性能优化和功能改进,热衷于解决 MySQL 疑难问题。
在这个专栏里,丁奇将会结合自己十多年来通过 MySQL 源码找答案的经历,和你分享一条高效的学习路径,旨在给你一个从理论到实战的系统性指导,让你少走弯路,彻底搞懂 MySQL。
专栏模块
专栏共 45 期,包括两大模块。
模块一,基础篇。为你深入浅出地讲述 MySQL 核心知识,涵盖 MySQL 基础架构、日志系统、事务隔离、锁等内容。
模块二,实践篇。将从一个个关键的数据库问题出发,分析数据库原理,并给出实践指导。每个问题,都不只是简单地给出答案,而是从为什么要这么想、到底该怎样做出发,让你能够知其所以然,都将能够解决你平时工作中的一个疑惑点。