说在前边的话:我用“小孩子”这个名称写文章其实主要是想我们有时候长大后就忘记了自己是小孩子时的样子,走的太远而忘记自己为什么出发。我希望能把自己放到一个小孩的心态去对待各种技术,时刻警惕自己:当初自己不会的时候是怎样想的?我这样写同学们是不是会感到晕晕乎乎,如果我当时学习的时候能在文章里看到一些段子该多好啊~

写这本书的初心就是想让MySQL进阶的学习过程不再那么难懂,不再那么枯燥,从一大部分的读者反馈来看我的目的是达到了。有同学有疑问书中的内容和公众号中发的有什么不同么,大概有这么几点:

覆盖面不同,公众号的内容主要是基础内容,并没有包括查询优化和事务和锁相关章节。

更加准确,公众号中的内容是我大约一年前整理的了,当时只是随手写的博客,里边儿有不少错误,在最新的小册中,我修复了很多的已知错误。

旧的文章增删的程度比较大,由于公众号文章写的时候并没有很好的构思,所以缺漏了非常多的知识点,在小册中增加了相应的部分,公众号的一些就文章的内容应该增加了一倍左右。

MySQL凭借着它还不错的性能、还不错的稳定性常年稳居老二宝座,当然最大的优势就是它不要钱,还开源,这让它成为大部分中小型公司,尤其是互联网公司首选的数据库(近年来越来越多的大公司也在尝试将业务转移到这种不要钱的数据库上来)。

越来越多的DBA和后端同学在工作中少不了和MySQL打交道,为什么这个SQL执行的这么慢?为什么明明我建了索引但查询计划显示没用?为什么我的IN查询里的参数一多就不使用索引了?为什么突然我的数据就成了乱码?到底应不应该使用连接查询?吧啦吧啦一大堆。在面试中MySQL的一些知识更成为躲不过的问题,比如索引结构、MVCC、隔离级别的实现、锁的使用等等等等都成为了面试考题重灾区。

有非常多的技术书籍会用一个上帝视角去描述一个对于小白来说十分陌生的领域,通常描述一个陌生事物都是大量概念的堆积,看似逻辑上天衣无缝,其实小白在看到第三行的时候可能就已经看不下去了,产生了抵触情绪,从而更安不下心去看后边的东西,得出的结论就是:这本书太高深了,我看不懂呀~ 所以很多时候我们都会觉得看书学习是一件很枯燥乏味的事儿,但是因为周围环境的压力,比方说老师家长的逼迫,升职涨薪的压力,我们又不得不以一种极不情愿的态度去强迫自己去学习那些我们并不感兴趣的技术书籍,既不想又必须去看,好纠结啊,所以幸福感骤然下降,影响到了生命的质量。

其实对于工程技术人员来说,大部分接触的所谓技术是没那么需要智商的,只是需要讲解这些技术的同学稍微切换一个角度,切换到小白的角度而不是站在一个上帝视角去讲述问题,那些看起来非常高深复杂的问题其实都是为了一个非常简单的初衷而不得不采用的设计。我的任务就是带着大家从非常简单的问题出发,在解决问题的路上我们会遇到一些麻烦,由这些麻烦我们会很自然的引入一些新的概念,我会不断的向大家强化这些新概念,当我确保大家已经完全掌握了这些新概念后,会基于这些新概念再引入一些更为复杂的问题。高楼大厦虽然雄伟,解构之后不过是钢筋水泥。当然这个过程我会适当的给大家加点儿料,扯扯犊子,让大家像读小说一样接受这些MySQL的核心概念。

不知道大家有没有看过天龙八部,西夏公主张榜招婿只为寻找她的梦郎(虚竹饰),在大殿上垂着帘子,用纱捂着脸,朦朦胧胧非常神秘。stop!大家为啥觉得她很神秘,因为看不清啊