数据库是个很复杂的系统,涉及到算法、数据结构、编译原理、体系结构、网络通信等几乎涵盖计算机科学主要方面的东西,想要全搞懂了着实不易,但要真好好地把某个开源数据库内核实现研究一番,却又大有裨益。要提起开源数据库不能不提MySQL,可以说互联网的兴起都是受到这个开源产品的促进,随着MySQL被Oracle收购,PostgreSQL这个稍显学院派的数据库逐渐被人们重视起来,越来越多的人投入到PostgreSQL内核开发中来。
PostgreSQL与MySQL是两种经典的极端:MySQL偏重江湖实用性,PG散发着严谨的学院气息;MySQL的SQL引擎和存储引擎分离的,PG的SQL引擎与存储引擎的高度耦合;MySQL是多线程,PG是多进程的... ...
由于工作的关系,主要看PG的代码多一些,而PG又是经典的遵循了《数据库系统实现》这本书。只看一个系统实现的坏处就是总以为这个东西就该这么实现,放弃了思考多种可能的机会。所以将这两个系统放在一起对比阅读,将会是一种奇妙的体验。
工作又忙,自己又懒,为了鼓励自己坚持下去,用一篇《为学》来开篇吧。