书挺好,低级错误人神共愤
本来我觉得这本书能值四星,现在看来三星半都勉强。低级错误(非技术的,比如少个空格,字母错误,错别字等)是如此地多,以至于你常常会觉得,这肯定是他们(我觉得这事儿还是编辑责任大一些)故意羞辱你的:反正你买了书了,我们就这样,咋的?
本书分析的是 MySQL 3.23.49 的 InnoDB 部分的代码。
按照 InnoDB 的代码结构,分成了若干章节,分别对这些功能模块进行详细地讲解。静态的代码分析可以说做到最好效果,模块之间动态的关系说的比较少。
这是本书讲解的方式决定的,我在笔记中也说了,我比较喜欢的是自顶向下的讲解方式,先了解对外的功能,再了解各个模块之间的协作,最后看细节实现。本书反过来讲,先讲实现,协作讲的比较少,这样以来对外功能也不必要讲了。
对我来说,存储管理,锁,Insert Buffer,事务处理四章最为重要,一是之前接触比较少,二是其处在系统的连接的部分,也不太容易注意到。另外概念上进行一个系统地总结对于系统的理解也非常有帮助。
最后我想说,能看出来作者确实是这方面的大牛,对代码的理解非常到位。很遗憾的是,就像知乎上人说的,数学教育的当务之急是把学生的语文水平提上去。叙述流畅性上差了一截,错别字一堆,实在是非常可惜。
update:
作者推荐阅读 3.23.49 的代码,因为整体的架构变化不大。但我还是推荐最新版的代码,数量虽然很大,但代码可读性上面有了巨大的进步。基本上就是古文和白话的区别。(坊间传闻 PostgreSQL 的设计和代码可读性非常好,估计 MySQL 团队也挺有压力的吧。)
update:
最近阅读 MySQL 代码的过程中越发地觉得本书的编排方式之不合理。浏览一遍之后,还是从后往前看比较方便。符合直觉的方式是,先知道怎么样,然后问为什么。就好比学习天体物理,知道行星围着太阳转应该在学微积分推倒开普勒定律前面才对。
本书分析的是 MySQL 3.23.49 的 InnoDB 部分的代码。
按照 InnoDB 的代码结构,分成了若干章节,分别对这些功能模块进行详细地讲解。静态的代码分析可以说做到最好效果,模块之间动态的关系说的比较少。
这是本书讲解的方式决定的,我在笔记中也说了,我比较喜欢的是自顶向下的讲解方式,先了解对外的功能,再了解各个模块之间的协作,最后看细节实现。本书反过来讲,先讲实现,协作讲的比较少,这样以来对外功能也不必要讲了。
对我来说,存储管理,锁,Insert Buffer,事务处理四章最为重要,一是之前接触比较少,二是其处在系统的连接的部分,也不太容易注意到。另外概念上进行一个系统地总结对于系统的理解也非常有帮助。
最后我想说,能看出来作者确实是这方面的大牛,对代码的理解非常到位。很遗憾的是,就像知乎上人说的,数学教育的当务之急是把学生的语文水平提上去。叙述流畅性上差了一截,错别字一堆,实在是非常可惜。
update:
作者推荐阅读 3.23.49 的代码,因为整体的架构变化不大。但我还是推荐最新版的代码,数量虽然很大,但代码可读性上面有了巨大的进步。基本上就是古文和白话的区别。(坊间传闻 PostgreSQL 的设计和代码可读性非常好,估计 MySQL 团队也挺有压力的吧。)
update:
最近阅读 MySQL 代码的过程中越发地觉得本书的编排方式之不合理。浏览一遍之后,还是从后往前看比较方便。符合直觉的方式是,先知道怎么样,然后问为什么。就好比学习天体物理,知道行星围着太阳转应该在学微积分推倒开普勒定律前面才对。
有关键情节透露