从词法分析到查询执行,构建一个支持 SQL 语法的关系型数据库。涵盖 Lexer 词法分析、Parser 语法解析、执行引擎、磁盘存储引擎、MVCC 事务等核心主题。
你每天都在写 SQL,但你知道 SELECT * FROM users WHERE age > 18 这条语句在数据库内部是怎么执行的吗?
本课程带你从零构建一个完整的关系型数据库。从 SQL 文本的词法分析开始, 逐步实现语法解析、查询计划、执行引擎、磁盘存储引擎、MVCC 事务、JOIN 优化, 最终构建出一个可以通过命令行交互、支持事务的 SQL 数据库。 麻雀虽小五脏俱全 -- 支持 CREATE TABLE、INSERT、SELECT、UPDATE、DELETE、JOIN、GROUP BY、ORDER BY 等完整 SQL 语法。
每天写 SQL 但不知道底层发生了什么,想从"使用者"变为"理解者"
想理解 MySQL、PostgreSQL 等数据库的核心设计,为深入内核学习打基础
被问到"MVCC 怎么实现的""SQL 解析流程是什么"时能从实现层面深入回答
熟悉 Go / Rust / Java / C++ 中的任意一门语言即可。不需要编译原理或数据库理论基础 -- 课程从 SQL 语法的基本概念讲起,每个模块都有清晰的文章讲解,代码从简到繁逐步演进。
Lexer 词法分析 + Parser 语法解析
Planner + Executor 迭代器模型
KV 存储接口 + 磁盘持久化
多版本并发控制 + 快照隔离