PostgreSQL 是什么
一句话总结
一个开源的关系型数据库,比 MySQL 更”较真”——ACID 严格、扩展性好、能跑 30 年不塌。
🤔 为什么会有它 / 解决了什么问题
90 年代商业数据库(Oracle、DB2)太贵太封闭,开源数据库要么缺功能要么不靠谱。PostgreSQL 填补了”开源但严肃”的空缺——学术圈造出来的,天生严谨。
🔍 具体原理 / 运作逻辑
存数据像填 Excel 表,但每条记录都会记日志、加锁、保证要么全写要么不写(ACID)。支持 JSON、数组、自定义类型,比传统关系库灵活。查询走优化器,自动选最快的索引路径。
更硬核的技术细节(点击展开)
MVCC(多版本并发控制):读不堵写,写不堵读。每个事务看到的是数据在它启动那一刻的快照。WAL(预写日志):写操作先记日志再改磁盘,崩溃后靠日志恢复。支持 B-tree、Hash、GiST、GIN、BRIN 多种索引。扩展生态丰富:PostGIS(地理)、pgvector(向量)、pg_stat_statements(性能)。
🧭 什么情况下会用到 / 什么场景会遇到它
- 需要严格数据一致性的业务系统(金融、ERP、SaaS)
- 数据建模复杂、字段类型多变的中后台项目
- 搭配 Cloudflare Hyperdrive 做全球化读写分离
🛠️ 怎么上手 / 在哪操作
本地:apt/brew install postgresql;云端:去 Neon 或 Supabase 免费创建,拿连接字符串直接用。
⚖️ 副作用 / 代价 / 取舍
- 高并发写入场景需 Patroni/PgBouncer 做连接池和 HA,运维复杂度高于单机 MySQL
🕰️ 来历
- 谁提出/创造的:加州大学伯克利分校 Michael Stonebraker 团队(Postgres 项目后代)
- 什么时候出现的:1986 年开始 Postgres 研究,1996 年 PostgreSQL 6.0 正式发布
🔗 关联 / 经常一起出现的概念
- Cloudflare Hyperdrive:CF 的数据库连接池服务,给 PostgreSQL 在边缘节点维持温热连接,读写延迟降 80%
- Patroni:PostgreSQL 高可用方案,自动切换主备
- pgvector:向量扩展,让 PostgreSQL 能存和搜索 embedding,兼作向量数据库
⚠️ 注意事项 / 常见误区
- PostgreSQL 不是”比 MySQL 快”,各有擅长。复杂查询和并发一致性它强,简单 KV 场景 MySQL 更快
- 默认配置偏保守,生产必须调优(shared_buffers、work_mem、effective_cache_size)
📎 记忆锚点
“数据库界的瑞士军刀——什么都能干,但你不能买来不磨刀就用。”
📝 更新日志
| 日期 | 改动 | 原因 |
|---|---|---|
| 2026-07-13 | 首次创建 | - |