TypeScript · 项目报告

NikolayS/PGSimCity

An explorable 3D city that shows how Postgres actually works

已完成 打开 GitHub
N
454星标
33Fork
0Issue
Apache-2.0许可证

分析结果

项目分析

PGSimCity 是一个基于 TypeScript、three.js 和 Vite 构建的 PostgreSQL 内部机制 3D 可视化教育项目。它把 PostgreSQL 集群抽象成一座可探索的城市,用建筑、颜色、动画和交互场景展示连接、backend、shared_buffers、WAL、checkpoint、autovacuum、存储、复制、PITR 等核心机制。项目不是 PostgreSQL 模拟器或数据库内核实现,而是一个经过测试和审阅的教学模型,适合用于理解 PostgreSQL 运行原理、性能现象和运维风险。

适用领域 PostgreSQL / 数据库内核原理 / 数据库运维教育 / 3D 可视化 / WebGL / three.js / TypeScript / 前端工程 / 交互式教学 / 数据库性能调优
配置难度 中等。普通用户可直接访问在线版本学习;本地运行只需要 Node.js 20、npm 和支持 WebGL2 的浏览器。若要深入理解或二次开发,需要同时具备 PostgreSQL 内部机制、TypeScript、three.js、WebGL 交互和前端工程经验。
商业价值 该项目的商业价值主要体现在技术培训、开发者教育和数据库运维能力建设上。对于使用 PostgreSQL 的团队,它可以帮助后端工程师更直观地理解 checkpoint、WAL、vacuum、缓存命中率、复制延迟等问题,从而提升故障排查和性能优化效率。对于培训机构、咨询团队或数据库厂商,它可作为演示 PostgreSQL 原理的高质量互动素材。项目本身声明为非商业教育可视化,但 Apache-2.0 许可证使其具备较好的内部改造和集成潜力。
01

技术亮点

  • 用城市隐喻把 PostgreSQL 内部机制可视化,学习门槛比纯文档或源码阅读低
  • 覆盖 shared_buffers、WAL、checkpoint、background writer、autovacuum、replication、standby、PITR、query planning 等多个关键主题
  • 提供 14 章 guided tour,适合系统化学习
  • 支持交互式场景,例如 Cache thrash、Long-running transaction、Checkpoint storm、Slow replay 等
  • 颜色语义明确:WAL、dirty pages、clean pages、vacuum、checkpoint、replication 等都有固定视觉编码
  • 架构分层清晰:core、sim、world、engine、ui、observability 分离
  • 仿真层不依赖 three.js,渲染层不直接修改仿真状态,通过 SimState 解耦
  • README 明确说明准确性边界:它是教学模型,不是 PostgreSQL 仿真器或真实数据库
  • 项目有 234 个测试,并在 CI 中保障关键行为不被破坏
  • Apache-2.0 许可证,对学习、二次开发和企业内部使用较友好
  • 已有在线演示地址,可无需安装直接体验
02

目标用户

  • 想理解 PostgreSQL 内部机制的后端工程师
  • 缺少数据库运维经验但需要排查数据库问题的开发者
  • PostgreSQL DBA 和数据库内核学习者
  • 技术培训讲师和课程设计者
  • 希望通过可视化方式学习 checkpoint、WAL、vacuum、buffer cache、replication 的工程团队
  • 对 three.js/WebGL 复杂可视化项目感兴趣的前端开发者
03

配置要求

  • Node.js >= 20
  • 支持 WebGL2 的现代浏览器,推荐 Chrome、Edge 或 Firefox
  • 项目没有应用服务器依赖,构建结果是静态 bundle
  • 主要运行时依赖是 three.js,构建工具为 Vite
  • 可选功能 Query flow 可能在用户显式点击后加载同源的 PGlite JavaScript、数据和 WebAssembly 资源
  • 默认会向 Plausible 发送匿名、无 Cookie 的聚合分析数据;阻止 plausible.io 不影响核心应用运行
  • 移动端触控支持仍有限,README 中说明主要只在 Chrome 移动模拟器中验证过
04

适用场景

  • 通过 3D 城市模型学习 PostgreSQL 的整体架构和数据流
  • 演示一次 SQL 查询从连接、解析、计划、执行到 WAL、buffer、commit 的路径
  • 解释 checkpoint storm、cache thrash、long-running transaction、autovacuum 无法清理等典型生产问题
  • 用于团队内部 PostgreSQL 培训、数据库性能问题复盘和技术分享
  • 作为 three.js + TypeScript 构建大型交互式可视化应用的参考项目
  • 在浏览器中无需后端服务运行静态教育应用
  • 通过 guided tour 快速浏览 PostgreSQL 的 14 个核心概念章节
05

部署与配置

  • 安装 Node.js 20 或更新版本
  • 确认浏览器支持 WebGL2
  • 克隆仓库:git clone https://github.com/NikolayS/PGSimCity.git
  • 进入项目目录:cd PGSimCity
  • 安装依赖:npm install
  • 启动开发服务器:npm run dev
  • 在浏览器访问:http://localhost:5173
  • 运行测试:npm test
  • 执行类型检查:npm run typecheck
  • 构建静态产物:npm run build
  • 本地预览构建结果:npm run preview,然后访问 http://localhost:4173
06

风险与注意事项

  • 项目仍处于 0.x 阶段,模型和实现可能变化较快
  • 它不是 PostgreSQL 源码级模拟器,数值经过缩放,不能用于精确性能预测或生产容量评估
  • 部分 PostgreSQL 内部细节做了教学简化,使用时需要结合官方文档和真实监控数据
  • 移动端触控验证不充分,移动设备体验可能不稳定
  • 依赖 WebGL2,老旧浏览器、低性能显卡或受限企业环境可能无法流畅运行
  • 如果用于中文教学,需要自行补充中文讲义或翻译界面说明
  • PGlite 相关功能为可选加载,受浏览器、WASM、资源策略影响
  • Plausible 分析虽然无 Cookie,但在隐私敏感或内网环境中仍可能需要关闭或屏蔽

历史记录

热榜历史快照

2026-08-01 第15名 新收录 · github_search
2026-07-31 第13名 新收录 · github_search
2026-07-30 第18名 新收录 · github_search
2026-07-29 第24名 新收录 · github_search