数据库核心术语知识库
系统化整理的数据库核心技术概念,涵盖索引优化、存储引擎、事务并发、日志恢复、架构设计和高级索引等关键领域。
内容概览
本知识库包含 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》