这本书讲什么
数据库有几百种,该用哪个?作者在序言里的回答是「看情况」,这本书就是在讲看什么情况。它不教某一个产品怎么用,而是把各种数据系统背后的原理摊开:数据怎么存、怎么在机器之间复制和切分、网络和时钟出问题时怎么办、一份数据怎么派生出索引、缓存和分析表。每一处都讲取舍:这样做省了什么,代价付在哪里。作者说工具变得快,原理变得慢,懂了原理就能看清每个工具的位置。
写给谁(§2):要为系统做架构决定的工程师和技术负责人,尤其是后端;想弄清手上系统底层原理的数据工程师、云平台工程师;准备系统设计面试的人;以及不满足于流行词、想知道大网站幕后怎么运转的人。作者假设你做过 Web 应用,熟悉关系数据库和 SQL,大致懂 TCP 和 HTTP;用什么编程语言无所谓。
全书约一千条参考文献(致谢),每章末尾一份(§4),多数能免费在网上读到。作者在 GitHub 上维护着一份最新的链接(ept/ddia2-references)。读纸书的话,想追某篇论文,按标题搜就行。
全书地图
第二版不分部分,本站按内容把十四章分成五块。箭头是「后面的要用到前面的」:第 6 到 10 章前后接得最紧,第 10 章几乎每一节都在回收第 6、8、9 章留下的问题。
怎么读
- 以英文为主,读不顺就翻译本。每章页面的分节地图照抄了原书的小标题,下面一行是本站自己译的中文意思,可以照着在译本里找。本站的中文术语是自己译的,可能和译本不同,按英文对。
- 一章分几次读完。全书约 20 万词,每章 6 千到 2.2 万词。每章的分节地图把一章分成三到六次「坐下」,每次两三千到五千多词,在意思转折处断开。
- 读之前先猜,读完再对。每章页面的上半部分是预测、骨架、分节地图、用中文和示意图过一遍的机制、模拟器和词条;读完再看下半部分的答案、判断题和理解检查。
- 第 6 到 10 章最好连着读。复制、分片、事务、故障、共识,前一章埋下的问题后一章接着讲,隔太久回来会接不上。
本站的建议(不是作者的):只有一点时间、想先抓住最常用的部分,可以按 1 → 2 → 4 → 6 → 8 读,其余的需要时再回来;偏数据工程方向的,第 3、4、5、11、12、13 章是重心;对分布式系统最好奇的,从第 6 章读到第 10 章。不管哪条路线,第 1 章都值得先读:它定下了全书看问题的方法。
第二版新在哪
对照译本时认准第二版。第一版(2017)的译本还在流通,章节结构不同:第一版共 12 章,第 1 章讲可靠性、可扩展性和可维护性;第二版 14 章,第 1 章是数据系统架构里的取舍。
第一版是 2017 年出的,Martin Kleppmann 一个人写;第二版加入了 Chris Riccomini 做合著者(§3、致谢)。按序言的说法,目标和范围没变,全书都改过一遍,大约多了 60 页。两个最大的变化是 AI 热潮和「云原生」的架构:
- 为 AI 服务的数据系统:向量索引(语义检索用)、DataFrame(准备训练数据用)、为大批训练数据做准备的批处理。
- 云原生:数据系统建在对象存储上而不是本地磁盘上,这个想法贯穿全书。
- 新加的话题:同步引擎和本地优先软件、工作流引擎和持久化执行、形式化方法和随机测试、GraphQL,以及欧盟《通用数据保护条例》(GDPR)等法律背景。
- 拿掉和重写的:MapReduce 基本过时,批处理一章重写了;一致性与共识(现在的第 10 章)几乎整章重写;章的编号也变了。
分节地图
序言约 1900 词,一次读完。后四节(排版约定、出版社的在线学习平台、联系方式、致谢)可以跳过。
- Preface约 400 词序言「看情况」和这本书的取向:讲原理、讲取舍,兼顾学术和工程。
- Who Should Read This Book?约 300 词谁应该读这本书几类读者,和作者对你已有知识的假设。
- What’s New in the Second Edition?约 300 词第二版有什么新东西AI 和云原生两条线,新增和删掉的话题。
- References and Further Reading约 200 词参考文献和延伸阅读一千来条文献怎么用,论文去哪找免费的。
词与短语
词条按在书里出现的顺序排,按节分组。斜体小字是原句里连续的几个词,在电子书里搜它就能找到那一句。标着「每个字都认识」的,是字面意思会把你带偏的。
§1 Preface
§2 Who Should Read This Book?
§3 What’s New in the Second Edition?
§4 References and Further Reading
本站怎么用
- 每章一页,中间有一道「先停下,去读原书」。上面是读之前看的,下面是读完再看的。
- 分节地图可以打勾。读完一节勾一节,首页的目录会显示读到哪了。章末有「这一章读完了」的按钮。
- 写下的东西只存在你的浏览器里。预测、边读边填的答案、一句话总结都会自动保存。想在几台设备之间同步,在教程站首页开启同步。
- 词条可以「记下」。记下的词汇总在本书首页,也进入几本伴读共用的跨书词本,按间隔复习。
- 模拟器在第 2、4、5、6、7、8、9、10、11、12 章,都只用浏览器、不联网。先按页面上的提示猜一猜,再动手验证。
- 全书术语和全书回顾在首页底部:术语每个只讲一次,回顾把各章的「精彩回顾」汇在一页。