毫无疑问,MySQL 是当下最流行的开源数据库。凭借强大的性能和易于使用性,它已被 Google、Facebook、YouTube、百度、网易和新浪等大型互联网公司所应用。更有统计,世界上一流的互联网公司中,排名前 20 的有 80% 都是 MySQL 的忠实用户。
我刚开始接触 MySQL ,是在百度贴吧做权限系统的时候。那会我们遇到了一个奇怪的问题,一个正常 10 毫秒完成的 SQL 查询请求会突然变得要执行 100 多毫秒才结束。我上网查不到答案,只好硬着头皮翻源码。后来遇到了越来越多的问题,也是类似的情景,于是我就逐步养成了通过分析源码理解原理的习惯。
后来到了阿里,我参与了阿里云关系型数据库服务内核的开发,并且负责开发开源分支 AliSQL,让我对 MySQL 内核和源码有了更深层次的研究和理解。在服务内部客户和公有云客户的过程中,我有机会面对和解决足够多的问题,再通过手册的系统学习,算是将 MySQL 的知识网络补了起来。
这些年,打着“数据库大拿”的称号(当然,我并不敢这么自诩),许多开发人员都会找我咨询,他们经常问我诸如“为什么我的 count(*) 这么慢”“MySQL 对于千万级的大表要怎么优化”“SQL 使用 Join 好还是多次 Select 好”“1000 多万条数据,我建了索引还是慢,怎么办”等等问题。
我发现其实许多开发者,都对如何学习和应用 MySQL 比较迷茫。我在使用 MySQL 的过程中,也曾遇到了形形色色的问题,从开发技巧到管理维护,从性能问题到安全问题。回顾这个过程,我的第一个感受就是,如果一开始就有一些从理论到实战的系统性指导,那该多好啊,也许我可以学习得更快些。
因此,我在极客时间开设《MySQL 实战 45 讲》专栏,就是希望能结合我十几年跟 MySQL 打交道的实战经验,让更多使用或对 MySQL 感兴趣的朋友少走弯路,真正搞懂 MySQL。
“码”上订阅《MySQL 实战 45 讲》
我是林晓斌,网名“丁奇”。我先后在百度和阿里任职,从事 MySQL 数据库方面的工作,一步步地从一个数据库小白成为 MySQL 的代码贡献者。回想起来,从我第一次翻 MySQL 的源码查到答案至今,已经有十个年头了。在这个过程中,见证了 MySQL 从一个小型的关系型数据库发展为各大企业的核心数据库系统,也走了不少弯路,但同时也收获了很多的知识和思考,希望能在这个专栏里分享给你。
作为一个过来人,我能深刻地意识到深入研究 MySQL 源码对于我人生的影响。不说别的,MySQL 本身就是一个设计优良的系统,深入研究源码,你能从中学习到其巧妙的设计思路,并且把这些思路用到自己的工作中。
比如 MySQL 里的 WAL 机制、索引的实现、缓存的处理方式等等,这些都是非常经典的设计,其中的设计思路和理念可以帮你解决你日常工作中的很多问题。换句话说,这就相当于你直接在向开发 MySQL 的大神学习开发经验。我相信他们有足够大的格局和实力来帮你成长和进步。
这个专栏里,我并不想带你去见证 MySQL 是有多复杂,相反,我会帮你梳理出学习 MySQL 的主线知识,比如事务、索引、锁等。 在这条主线上,每个点就是一个概念、一个机制或者一个原理说明。我会就开发过程中经常遇到的具体问题和你分析讨论,并且帮你理解问题背后的本质。 当然,讲本质的时候,我会把它涉及的周边知识给你捋一遍。
MySQL 内容可谓浩瀚,因此这个专栏肯定无法覆盖所有 MySQL 知识,而我将在线的选择上,选那些平时使用数据库需要会用到的。希望这些线组成的网,能够让你对 MySQL 的体系框架有更好的认识。
概括起来,看完我的专栏,你会有下面收获:
MySQL 核心技术详解与原理说明
36 个 MySQL 常见痛点问题解析
完整的 MySQL 学习路径
下面是目录,更清晰地展示了这个专栏的具体内容。
福利一:限时优惠¥68,原价¥99,11 月 24 日恢复原价
福利二:每邀请一位好友购买,你可获得 24 元现金返现,多邀多得,上不封顶,随时提现。(提现流程:极客时间 App - 我的 - 分享有赏)
长按识别下图二维码,试读或订阅专栏。
点击「阅读原文」,试读或订阅专栏。