数据库内核可视化实验室
通过 8 个交互式模块,将 B+Tree、LSM-Tree、MVCC、WAL、Buffer Pool、查询优化器、事务隔离与分片分区等数据库内核核心机制以纯 SVG 动画直观呈现。每个模块均可点击操作、观察状态变化,理解数据在内核中的真实流转路径。
B+Tree 索引
B+Tree 是关系型数据库最常用的索引结构。所有数据存于叶子节点并形成有序链表,内部节点仅存索引键用于快速导航。插入触发节点分裂,树高随数据量对数增长。
LSM-Tree
Log-Structured Merge-Tree 通过层层合并优化写入吞吐。写入先进 Memtable,满后刷盘为 L0 SSTable,再由 Compaction 逐层合并压缩,以读放大与空间放大换取极高的写放大优势。
MVCC 多版本并发控制
多版本并发控制为每行保留多个历史版本,读事务依据快照时间戳读取对应版本,读写互不阻塞。版本链由最新指向最旧,过期版本由 Vaccum 回收。
WAL 预写日志
Write-Ahead Logging 保证持久性:数据页修改前先将日志记录写入 WAL。每条记录携带单调递增的 LSN,检查点记录已刷盘位置。崩溃后从检查点重放日志即可恢复一致状态。
Buffer Pool 管理
Buffer Pool 用固定内存缓存磁盘页,满时按淘汰策略驱逐。LRU 维护访问时间链、Clock 用使用位轮询、LFU 统计访问频率。命中率直接决定数据库性能。
查询优化器
优化器基于统计信息估算各算子代价,生成最优执行计划树。Join 是代价核心:嵌套循环适合小表、哈希连接适合大表等值、归并连接适合两表均有序的场景。
事务隔离级别
SQL 标准定义四级隔离:读未提交、读已提交、可重复读、可串行化。级别越高并发越低但一致性越强,分别可能避免脏读、不可重复读与幻读三类异常现象。
分片与分区
分区将大表拆分到多个存储单元以提升并行度与可管理性。Range 按区间、Hash 按哈希散列、List 按枚举值、Composite 组合多种策略。数据倾斜会导致热点分区。