为何在中国 MySQL 远比 PostgreSQL 流行?( 二 )


文章插图
五、大厂的号召力
前面提到的 Mark Callaghan 一开始在 Google 的 MySQL 团队,他们给生态做了很多贡献,后来 Google 内部开始用 Spanner 替换 MySQL,Mark 他们就跑到了 Facebook 继续做,又进一步发展了 MySQL 的生态,像当时互联网公司都需要的高可用方案 MHA (Master High AvAIlability) 就是 Mark 在 FB 时期打磨成熟的 。当时整个互联网技术以 Google 为瞻,传播链差不多是 Google > Facebook / Twitter > 国内互联网大厂 > 其他中小厂 。MySQL 在互联网公司的垄断就这样形成了 。
相对的 , 那段时间 PG 有影响力的文章不多,我唯一有印象的是 Instagram 分享他们 sharding 的方案 , 提到用的是 PostgreSQL (https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c) 。

为何在中国 MySQL 远比 PostgreSQL 流行?

文章插图
六、生态
有了大量使用后,自然就有人去解决碰到的各种问题 。先是 InnoDB 横空出世 , 解决了事务和性能问题 。主从,中间件分库分表方案解决了海量服务的扩展和高可用问题 。各种 MySQL 相关书籍 , 培训资料也冒了出来,应该不少人都读过高性能 MySQL (High Performance MySQL) 这本书 。
业界有 Percona 这样专注于做 MySQL 技术咨询的公司 , 他们还研发了一系列工具,比如做大表变更的 pt-online-schema-change(后来 Github 还发布了改良版 gh-ost),做备份的 xtrabackup 。
国内也做了不少的贡献,阿里给上游贡献了许多 replication 的改进 。SQL 审核优化这块,有去哪儿研发的 Inception , 小米团队的 SOAR 。Parser 有 PingCAP 的 MySQL Parser 。
相对而言 PG 在工具链的生态还是差不少,比如 PG 生态里没有开箱即用的 Parser , 没有 Parser 也就无法做 SQL 审核 。Bytebase 在实现相关功能时,就只能从头开始做 。当然这也成为了 Bytebase 产品的核心竞争力,我们是市面上对 PG 变更审核,查询脱敏支持最好的工具,除了大表变更外,功能完全对标 MySQL 。
为何在中国 MySQL 远比 PostgreSQL 流行?

文章插图

为何在中国 MySQL 远比 PostgreSQL 流行?

文章插图

为何在中国 MySQL 远比 PostgreSQL 流行?

文章插图

为何在中国 MySQL 远比 PostgreSQL 流行?

文章插图
总结和展望
回到中国 MySQL 远比 PostgreSQL 流行的原因,在上面所有列出的要素里 , 我觉得最核心的还是第一条,MySQL 很早就能跑在 Windows 上,而 PG 不能 。因为有了能跑 Windows 这个点 , MySQL 成为了 LAMP 的一部分 , 到后来成为了支撑整个互联网的基石 。当时国内大家手头装的都是 windows 操作系统,要开发 web 应用,都用 LAMP 架构,就顺便把 MySQL 带上了 。
此外国内还有更明显的头部效应 。国内所有互联网公司的技术体系都源自阿里,比如拿研发环境来说 , SIT (System Integration Test) 是我回国加入蚂蚁后才接触到的名词,但后来在其他各个地方又都反复遇到 。数据库方案也是如此,全套照搬了阿里的 MySQL 方案 。就连技术职级也是 , 找工作先确认对标 P 几 。
为何在中国 MySQL 远比 PostgreSQL 流行?

文章插图
就在上月,MySQL 5.7 宣布了 EOL,算是给 MySQL 5 系,这个支撑了过去 15 年中国互联网的功勋做了一个告别 。
随着 MySQL 的辞旧,PG 的崛起 , 在这 AI 的黎明,VR 的前夜,下一个 15 年,MySQL 和 PG 之间相爱相杀的故事又该会如何演绎呢 。
作者丨天舟
来源丨公众号:Bytebase(ID:Bytebase)




推荐阅读