三个交互演示:① PG vs MySQL 进程/线程模型对比 · ② PG Postmaster 架构 · ③ 1000+ 扩展生态地图
左边 PG 走 fork() 多进程;右边 MySQL 走 pthread_create() 多线程。点「+ 新连接」看动画效果,点「💀 模拟崩溃」看崩溃隔离差异:
点击左侧任一客户端发起一个连接,看 Postmaster 如何 fork 一个新的 backend 来服务它。注意右下角的 4 个常驻后台进程(WAL Writer / Auto Vacuum / BgWriter / Checkpointer):
用 CREATE EXTENSION xxx; 一行命令就能装上的「能力包」。点击卡片看用法、它替代了什么独立产品:
| 能力 | PostgreSQL | MySQL |
|---|---|---|
| JSON 索引 | ✅ JSONB + GIN 索引 | ⚠ JSON 不可索引 |
| 数组类型 | ✅ 原生 + GIN | ❌ 不支持 |
| 地理 | ✅ PostGIS(业界标杆) | ⚠ 仅基础 GEOMETRY |
| 向量检索 | ✅ pgvector | ⚠ 8.4+ 实验 |
| 事务 DDL | ✅ 可回滚 | ❌ 隐式提交 |
| 窗口函数 | ✅ 完整 | ✅ 8.0+ 完整 |
| CTE 递归 | ✅ 完整 + RETURNING | ✅ 8.0+ |
| UPSERT | ✅ ON CONFLICT | ✅ ON DUPLICATE KEY |
| 逻辑复制 | ✅ 内置 pub/sub | ⚠ binlog 工具链复杂 |
| 分区 | ✅ 声明式 + 裁剪 | ✅ 但功能较弱 |