DATABASE INTERNALS · INTERACTIVE LAB

数据库内核可视化实验室

通过 8 个交互式模块,将 B+Tree、LSM-Tree、MVCC、WAL、Buffer Pool、查询优化器、事务隔离与分片分区等数据库内核核心机制以纯 SVG 动画直观呈现。每个模块均可点击操作、观察状态变化,理解数据在内核中的真实流转路径。

8 Modules SVG + Vanilla JS Zero Dependencies Single File
01INDEX STRUCTURE

B+Tree 索引

B+Tree 是关系型数据库最常用的索引结构。所有数据存于叶子节点并形成有序链表,内部节点仅存索引键用于快速导航。插入触发节点分裂,树高随数据量对数增长。

索引树结构与分裂动画
02WRITE PATH

LSM-Tree

Log-Structured Merge-Tree 通过层层合并优化写入吞吐。写入先进 Memtable,满后刷盘为 L0 SSTable,再由 Compaction 逐层合并压缩,以读放大与空间放大换取极高的写放大优势。

层级存储与合并过程
03CONCURRENCY CONTROL

MVCC 多版本并发控制

多版本并发控制为每行保留多个历史版本,读事务依据快照时间戳读取对应版本,读写互不阻塞。版本链由最新指向最旧,过期版本由 Vaccum 回收。

版本链与快照隔离
04CRASH RECOVERY

WAL 预写日志

Write-Ahead Logging 保证持久性:数据页修改前先将日志记录写入 WAL。每条记录携带单调递增的 LSN,检查点记录已刷盘位置。崩溃后从检查点重放日志即可恢复一致状态。

日志记录与恢复重放
05BUFFER MANAGEMENT

Buffer Pool 管理

Buffer Pool 用固定内存缓存磁盘页,满时按淘汰策略驱逐。LRU 维护访问时间链、Clock 用使用位轮询、LFU 统计访问频率。命中率直接决定数据库性能。

页面缓存与淘汰策略
06QUERY PLANNING

查询优化器

优化器基于统计信息估算各算子代价,生成最优执行计划树。Join 是代价核心:嵌套循环适合小表、哈希连接适合大表等值、归并连接适合两表均有序的场景。

执行计划树与 Join 代价
07ISOLATION LEVELS

事务隔离级别

SQL 标准定义四级隔离:读未提交、读已提交、可重复读、可串行化。级别越高并发越低但一致性越强,分别可能避免脏读、不可重复读与幻读三类异常现象。

并发事务与异常现象
08PARTITIONING

分片与分区

分区将大表拆分到多个存储单元以提升并行度与可管理性。Range 按区间、Hash 按哈希散列、List 按枚举值、Composite 组合多种策略。数据倾斜会导致热点分区。

分区策略与数据分布