先说结论:这不是一台藏在网页里的 PostgreSQL

PGSimCity 最抓眼球的地方,是把抽象名词变成空间。客户端从北侧进入,postmaster 为连接建立后端进程;中央广场是 shared_buffers,每个缓冲帧的高度表示 clock-sweep 使用计数,颜色表示干净、脏页等状态;东边是 WAL,地下是堆文件和索引,南边的 standby 稍慢一步重放主库送来的日志。读者可以缩小缓冲区、制造长事务、触发 checkpoint storm,直接看一组机制怎样相互牵动。

但作者没有把“能动”包装成“真实运行”。README 明确说它是手写模拟:1024 个缓冲帧代表现实中可能更多的页面,一个粒子代表大量元组;网页不会解析 SQL,也没有 PostgreSQL 代码在浏览器里执行。它适合回答“这些部件大致怎样协作”,不适合回答“我的查询为什么慢 37%”“某个版本会不会丢数据”或“这个参数该设成多少”。

中文创作者可以怎样把它写得既好看又可靠

最稳妥的结构不是录屏逛一圈,而是选一个问题做双轨解释。例如从“为什么一个忘记提交的事务能让表持续膨胀”开始:先用 PGSimCity 展示 xmin horizon 下沉、autovacuum 反复工作却无法回收;再打开官方 MVCC 与 vacuum 文档,解释哪些旧版本必须继续保留;最后在隔离测试库里用真实 SQL 和统计视图复现。这样,动画负责建立直觉,文档负责定义,实验负责验证。

第二个值得借鉴的是它的“诚实层”。启动页直接写明 early, unreviewed prototype,检查器也说明哪些地方经过简化。科普内容常担心承认模型不完整会削弱气势,PGSimCity 反而证明:把省略项放在显眼位置,能让读者知道什么时候该停止类比。中文二创也应把“不解析 SQL、不是官方项目、数字已缩放”放进标题附近,而不是埋在结尾。

许可同样要拆开讲。仓库采用 Apache-2.0,允许在满足条件时复制和修改代码,但需要保留许可与 NOTICE;PostgreSQL 名称和标识并不会因此变成任意使用的素材。若只想做视频或图文,优先录制自己的操作画面、链接原项目、注明独立教育原型,并用官方文档校对讲稿。它真正可复制的不是一套漂亮城市贴图,而是“空间隐喻 + 可触发场景 + 明示误差 + 原始资料复核”这条内容生产链。