PostgreSQL

PostgreSQL(简称 PG)被称为「世界上最先进的开源关系型数据库」。它以标准 SQL 支持完善、类型系统丰富、扩展能力极强著称,适合复杂查询、地理位置、JSON 与混合负载场景。

内容导航

章节内容
基础与 psql安装、psql、Schema、数据类型与 Go 客户端
进阶特性JSONB、数组、CTE、窗口函数、扩展
索引、执行计划与调优多种索引类型、EXPLAIN ANALYZE、参数调优
流复制、逻辑复制与高可用WAL 复制、逻辑复制、Patroni 与故障切换

MySQL 与 PostgreSQL 对比

维度MySQLPostgreSQL
默认事务隔离可重复读(RR)读已提交(RC)
存储引擎可插拔(InnoDB)单一(堆表 + MVCC)
数据类型较基础 + JSON极丰富(数组、范围、几何、枚举、JSONB)
索引类型B+Tree、全文、空间B-Tree、Hash、GIN、GiST、BRIN、SP-GiST
复杂查询一般强(CTE、窗口、LATERAL、并行)
扩展生态有限极强(PostGIS、pgvector、TimescaleDB…)
复制binlog 异步/半同步物理流复制 + 逻辑复制,同步可选
Tip

选型经验:简单高并发 OLTP、团队更熟悉 MySQL,选 MySQL;复杂查询、地理/JSON/向量、需要强标准 SQL 与扩展能力,选 PostgreSQL。两者业务能力高度重叠,团队熟悉度往往才是决定因素。

核心特性速览

  • MVCC:读写不互相阻塞,但旧版本需 VACUUM 回收。
  • WAL:崩溃恢复与复制的核心,属物理日志。
  • 丰富索引:GIN/GiST 支撑全文、JSON、数组与几何检索。
  • 扩展CREATE EXTENSION 即可加载 PostGIS、pgvector、pg_trgm 等。