TOC

我也想知道为什么 PG 不如 MySQL

看了 OSCHINA 上的文章《为何在中国 MySQL 远比 PostgreSQL 流行》,做了一点笔记。

MySQL 和 Oracle,SQL Server 一起,长期占据关系型数据库流行榜单 Top 3。当时,近 10 年来,PG 正在以非常快的速度迎头赶上。
这应该是没有争议的。

当时作者经过对比全球的数据和中国的数据,发现 PG 在中国发展远没有国际上好。
MySQL vs PG 的榜单中,中国位列第一,达到了 96:4,排第二的印度是 85:15。

我自己在 Google Trends 上查到的结果:

国家 比分
中国 90:10
印度 80:20
英国 76:24
美国 71:29
日本 64:36
法国 58:42
俄罗斯 38:62

为什么 PG 在中国发展不行呢,作者给了几个原因:

  1. MySQL 1998 年就推出了 Windows 版本,PG 则是等到了 2005 年。
  2. MySQL 新手友好。
  3. 连接 PG 数据库必须指定数据库,否则就 FATAL Database xxx does not exist
    而 MySQL 则是先连上再选择数据库,如果没有选择,查询时就提示 no database selected
  4. 访问控制方面,PG 有一个额外的 pg_hba (host-based authentication) 配置文件
  5. 层级关系
    MySQL:实例 -> 数据库 -> 表
    PG:实例(也叫集群)> 数据库 > Schema > 表
  6. PG 权限系统更加完备,容易碰到权限问题。
  7. 早期 MySQL 性能要好很多。
  8. LAMP 技术栈(很大程度也是第一点的原因)。
  9. 互联网大厂的影响。
  10. 包含书籍资料和周边工具在内的生态建设。

我觉得其中性能,Windows 支持、LAMP 技术栈这三点很有道理。