查看原文
其他

如何学习数据库系统知识

2017-01-25 飞总 飞总聊IT

不少读者留言提了两个问题:

  1. 我能不能多讲讲我的文章里提到的基本概念,比如MPP。或者干脆开个数据库系统基础系列。

  2.        怎么样去学习数据库系统的知识。


所以我开贴简单讲一讲。先回答第一个问题,我的文章,涉及到技术,在我力所能及的范围内我会选择讲得透彻一些。但是很多概念其实也是基础知识,正如一篇文章里面无法让只知道26个字母的人看懂英文名著一般的道理,有些东西的确是不容易讲清楚。那么我也就只能尽量做到讲技术和讲八卦分开来了。给大家各取所需就好。


至于开个数据库基础系列,我目前没这个打算。主要两个原因吧,一是受众有限,虽然给我留言的从绝对数量上看不少,相对的比例不高。吃瓜群众喜闻乐见的还是八卦。二是我写公众号的时间有限,多写了这些就没办法写其他的了。而数据库实现的基础知识,对我来说又太过烂熟于胸,写与不写对自己的提高和帮助都不大。当然,如果有观众们愿意打赏众筹指定我写某个topic,那我觉得只要人多钱多,也是可以考虑的。


下面回答第二个问题,数据库系统,包括大数据系统,最好的学习方式其实就是自己在一个开发团队里,做几年,环境自然而然逼迫你学很多东西了。这个可能只对少部分人适合。


在这个之外的学习途径,我首先推荐看斯坦福大学的数据库系统实现

这本书是数据库系统实现里面的经典的经典了。里面的内容虽然非常的简单,和实际的系统的差距天壤之别,但是这些经典的概念如果能够明白的话,对于理解任何一个数据库和大数据平台的开发都有很大的帮助。


在大数据年代,另外一个渠道就是阅读论文了。从谷歌的三驾马车到Spanner。论文阅读在今天对于比较深入了解大数据系统构架是很重要的一个途径。但是说白了,论文其实不好读,比书难读多了,我都读论文10多年了,很多论文也得反复思考很多遍才能真的读明白。我推荐的是数据库里面的红宝书,由图灵奖获得者Michael Stonebraker编著的经典数据库论文集:


这本书搜集的论文从上世纪70年代起到现在,很多都是这个领域里面很经典的,涉及了数据库内部的方方面面。虽然有些论文比较陈旧,但是经典的东西其实还是会让人有很多的收益的。


第三个渠道其实也简单,就是自己去看源代码的实现了,经典数据库的话,看看Postgress的实现就挺好的了。现在大数据时代不管Hadoop还是Spark,源代码都是公开的,不过这条路应该更需要努力了。


我就这样总结一下,给大家做个参考。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存