PostgreSQL学徒

PGSimCity - PostgreSQL 工作原理可视化解析

早上在群里看到一个十分有趣的项目 PGSimCity - PostgreSQL 工作原理可视化解析,可以理解为一套运行在浏览器中的PostgreSQL 机制教学沙盘。https://github.com/NikolayS/PGSimCity

#数据库 PGSimCity - PostgreSQL 工作原理可视化解析

PGSimCity 是一个 PostgreSQL 数据库引擎的 3D 可视化模拟工具,将数据库内部机制映射为一座虚拟城市,便于用户理解。它展示如 TPS、缓存命中率、WAL 流量等关键指标,并允许用户自定义事务频率、读写比例等参数,模拟数据库性能变化。用户可通过回放控制、交互建筑和预设场景(如检查点风暴、缓存激冷等)深入观察 PostgreSQL 的内部运作,包括缓冲池、检查点进程、自动清理与复制机制。该项目主要用于教学与原理展示,参考了大量权威资源,包含一个 4 分钟的引导教程,目前仍为早期原型。https://nikolays.github.io/PGSimCity/

在这个项目中,数据库内部组件被映射成城市建筑或基础设施:

PostgreSQL 对象
城市中的表达
postmaster
连接入口或管理中心
backend process
独立工作的后端单元
shared_buffers
缓冲池建筑/区域
WAL buffers
WAL 写入环
pg_wal
WAL 仓库
checkpointer
检查点设施
background writer
后台清理设施
autovacuum launcher/workers
调度中心与工作车辆
heap/index/table forks
数据存储建筑
streaming replication
通往第二座集群的线路
standby startup process
从库上的 WAL 回放设施
logical replication
解码与变更输出链路

一幅可以行走、旋转、缩放、点击的 PostgreSQL 架构图。另外,源码中不只是动画,还有大量原理讲解,包括:

  • one connection, one process
  • backend 独立执行
  • shared memory 的组成
  • MVCC snapshot
  • xmin/xmax
  • pg_xact 与 SLRU
  • shared_buffers 与操作系统页缓存
  • WAL insert/write/flush LSN
  • checkpoint 与 full-page image
  • background writer
  • vacuum、FSM、VM 与 freezing
  • autovacuum threshold
  • replication slot
  • walsender/walreceiver
  • sent/write/flush/replay LSN
  • crash recovery
  • physical/logical replication
  • TOAST
  • Query Planner 等

一些讲解还关联了 PostgreSQL 官方文档、源码文件和相关书籍章节。俨然一套可视化的 PostgreSQL 原理百科。感兴趣的读者体验一下吧 ~