你的进度
你站在一座巨大的堡垒面前。
它的围墙是深灰色的石壁,每块石头上都刻着数字和符号。堡垒的大门敞开着,你能看到里面排列整齐的走廊——走廊两侧是一排排木质档案柜,柜子上方悬着发光的符文标签:adventurers、quests、vault_items、inventory……
你从背包里掏出最后一封信,是老陈的笔迹。
小杨:
听说你已经把魔法驿道修到七座城了。路通了,但你运的那些东西放哪? 你一路走一路攒——代码、配置、日志、用户数据、交易记录——全都塞在随身的口袋里(CSV 文件、JSON 文件夹、内存里的 ArrayList)。
口袋不够用了,对吧?
来找我。我在数据堡垒。这里教你建真正的仓库。
你抬起头。堡垒入口上方刻着一行大字:
** 数据堡垒** 第五站:从 SQL 到 LSM-Tree,从索引到分布式存储
你深吸一口气,走了进去。老陈站在门厅里,手里拿着一把巨大的钥匙——钥匙上刻着:CREATE DATABASE。
他笑了笑:"等你很久了。"
数据库与数据系统
前置要求
需要编程基础。熟悉基本的 CRUD 概念,会用至少一门语言编程。建议先读完 Vol 1-2。Vol 4(网络)理解 "驿道" 比喻即可,不需要深入协议知识。
本卷结构
本卷分为五部分,从上路的 SQL 入门一路走向分布式数据系统:
Part 1:关系模型与 SQL — 仓库的蓝图
第1章 关系型数据库与 SQL 已完成
老陈递给你一本账本——学会用 SQL 建表、存数、查询。从第一张 adventurers 表开始。
第2章 关系代数 已完成
老陈书房的墙上有你不知道的数学符号——选择、投影、连接。SQL 背后的骨架。
第3章 ER 图与数据库设计 已完成
蓝图画好才能开工。实体关系建模、函数依赖、范式——避免仓库里堆满重复货物。
Part 2:存储与索引 — 仓库的货架
第4章 B+树与存储引擎 已完成
走进地下室,看到巨大的文件柜系统。B+树就是它的骨架,WAL 是来货登记簿。
第5章 LSM-Tree 深度 已完成
另一间工坊不断合并、重排文件——LSM-Tree 的 compaction 就像工坊的流水线。
第6章 列存格式 已完成
分析仓库不需要整排货架,只需要每种货物的一列。行存 vs 列存,两种不同的视角。
第7章 哈希索引与外部排序 已完成
快速查找台(哈希索引)和货物分拣室(外部排序)——仓库里最常用的两个工具。
Part 3:查询执行 — 仓库的管家
第8章 查询执行与优化器 已完成
老陈的军师在制定每项查询的最佳路线——扫描方式、连接算法、代价估算。
第9章 查询编译 已完成
老陈发现"口头传令"太慢了,开始把指令直接编译成机械操作——解释 vs 编译。
第10章 SIMD 向量化 已完成
仓库引入自动化流水线——一次处理一整批货物,代替一件件搬运。
Part 4:并发与事务 — 仓库的规矩
第11章 事务与 ACID 已完成
两个管理员同时入库同一批货怎么办?老陈说——定规矩。
第12章 MVCC 与隔离级别 已完成
管理员开始用"副本记录本"避免互相干扰——MVCC 和隔离级别的艺术。
第13章 高级并发控制 已完成
更复杂的仓库协作规则:两阶段锁、乐观锁、死锁调解。
第14章 内存数据库 已完成
堡垒顶层的快速品鉴室——所有货物放在眼前,不用下地库翻找。
Part 5:分布式与生态 — 走出堡垒
第15章 NoSQL 家族 已完成
走出主仓库,看到周围的特色小作坊——为特殊货物量身定做的不同仓储方式。
第16章 分布式数据库 已完成
开始建跨城市的分仓网络——数据如何分片、复制、保持一致。
第17章 消息队列 已完成
仓库之间的传送带系统——解耦生产和消费,削峰填谷。
第18章 系统分析对比 已完成
站在数据堡垒的城墙上,俯瞰整个数据领域——从 SQL 到分布式的一条链。
旅人笔记
"路修好了,你的货放在哪?" — 老陈的信
数据是这个时代最值钱的东西之一。数据库就是你管这些东西的仓库。 从一张简单的 adventurers 表开始,你会在这一卷里把整个仓库建起来——架子、账簿、规矩、分店,全齐。