Skip to content

数据库核心术语知识库 ​

系统化整理的数据库核心技术概念,涵盖索引优化、存储引擎、事务并发、日志恢复、架构设计和高级索引等关键领域。

内容概览 ​

本知识库包含 42 个核心术语,分为 6 大章节,每个术语都提供深入的技术解析、源码分析和实战案例。

01-索引与查询优化 (11个术语) ​

覆盖索引、回表、最左前缀原则、索引下推、索引合并、索引选择性、基数、统计信息、执行计划、参数嗅探、索引提示

02-存储与物理结构 (7个术语) ​

页分裂、页合并、碎片、堆表、行溢出、预读、索引组织表

03-事务与并发控制 (8个术语) ​

ACID、MVCC、事务隔离级别、锁粒度、间隙锁、死锁、乐观锁、悲观锁

04-日志与持久化 (5个术语) ​

WAL、Redo Log、Undo Log、检查点、双写缓冲

05-架构与设计模式 (6个术语) ​

垂直分表、水平分表、读写分离、物化视图、临时表、派生表

06-特定功能索引 (5个术语) ​

全文索引、空间索引、哈希索引、位图索引、函数索引

学习路线 ​

初级阶段 (1-2周) ​

掌握日常开发必备的索引和查询优化知识:

  • 覆盖索引 - 理解如何避免回表
  • 回表 - 明白为什么某些查询慢
  • 最左前缀原则 - 学会设计复合索引
  • 执行计划 - 能够分析查询性能
  • 基数 - 理解索引选择的基本原则

中级阶段 (2-4周) ​

进行系统性的性能调优:

  • 索引选择性 - 量化评估索引价值
  • 索引下推 - 理解 MySQL 5.6+ 的优化特性
  • 统计信息 - 理解优化器决策的依据
  • MVCC - 多版本并发控制原理
  • 事务隔离级别 - 不同级别的权衡

高级阶段 (4-8周) ​

深入理解数据库内核原理:

  • WAL、Redo Log、Undo Log - 日志系统完整机制
  • 检查点、双写缓冲 - 持久化保障
  • 死锁检测算法 - 源码级理解
  • 页分裂、页合并 - B+Tree 内部操作

专家阶段 (8-12周) ​

掌握架构设计和高级特性:

  • 垂直分表、水平分表 - 分库分表策略
  • 读写分离 - 主从架构实践
  • 全文索引、空间索引 - 特殊场景优化
  • 源码分析与内核定制

使用建议 ​

系统性学习 ​

按照学习路线循序渐进,每个术语包含定义、原理、源码、示例、案例和最佳实践。建议配合实际实验环境验证理论。

问题查阅 ​

遇到具体问题时快速定位相关术语:

问题场景参考术语
查询很慢如何优化执行计划、覆盖索引、索引选择性
如何设计复合索引最左前缀原则、基数、索引选择性
索引为什么不生效回表、统计信息、参数嗅探
事务并发问题MVCC、事务隔离级别、死锁
崩溃恢复原理WAL、Redo Log、Undo Log、检查点
大数据量如何拆分垂直分表、水平分表、读写分离

对比学习 ​

通过术语间的关联链接建立知识网络。例如学习覆盖索引时,可以顺带回表、索引下推等相关概念。

技术特点 ​

源码优先: 核心术语包含 InnoDB、Oracle 等官方源码分析,如 trx_rollback()、btr_compress()、lock_deadlock_check() 等 60+ 个核心函数。

实战导向: 每个术语都有真实场景案例,包括电商平台、社交平台、物流系统等实际应用。

深度解析: 平均每个术语 600-1300 行详细内容,不只是表面概念,而是深入到实现原理层面。

实验环境 ​

建议在本地搭建测试环境动手验证:

bash
# MySQL Docker 快速启动
docker run --name mysql-test -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql:8.0

# 连接数据库
mysql -h 127.0.0.1 -P 3306 -u root -p

学习每个索引相关术语时,结合实际执行计划进行分析:

sql
-- 创建测试表
CREATE TABLE test_users (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT,
  email VARCHAR(100),
  INDEX idx_name (name),
  INDEX idx_name_age (name, age)
);

-- 分析不同查询的执行计划
EXPLAIN SELECT * FROM test_users WHERE name = '张三';
EXPLAIN SELECT name, age FROM test_users WHERE name = '张三';
EXPLAIN SELECT * FROM test_users WHERE name = '张三' AND age > 25;

参考资料 ​

官方文档 ​

经典书籍 ​

  • 《高性能 MySQL》(High Performance MySQL)
  • 《数据库系统概念》(Database System Concepts)
  • 《Relational Database Index Design and the Optimizers》

在线资源 ​

Released under MIT License.