PostgreSQL 与 MySQL 的差异与选择

结论先行

PostgreSQL 更贴近 SQL 标准,复杂查询、扩展、JSON、并发控制和数据完整性更强;MySQL 部署简单、生态广、读多写少的 Web 业务经验丰富。复杂业务和强一致性优先 PostgreSQL,简单业务和既有 MySQL 生态继续 MySQL。

核心差异

维度 PostgreSQL MySQL
SQL 标准 支持度高 有较多方言和限制
事务/MVCC 成熟,DDL 事务化 InnoDB 事务成熟,DDL 行为不同
扩展 扩展生态强(PostGIS、pgvector 等) 插件生态不同
JSON JSONB 索引和查询强 JSON 支持较晚,能力有限
复制 流复制、逻辑复制 主从、组复制
默认行为 标识符折叠小写、严格类型 大小写/类型更宽松
运维 参数和扩展多 上手简单,生态广

怎么选

注意

psql -h host -U user -d db -c 'SELECT version();'
mysql -h host -u user -p -e 'SELECT version();'

相关命令