0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MySQL遥遥领先PostgreSQL的原因是什么

OSC开源社区 来源:OSC开源社区 2023-11-14 11:33 次阅读

作者介绍-陈天舟

首先在全球范围内,MySQL 一直是领先于 PostgreSQL (下文简称 PG) 的。下图是 DB-Engines 的趋势图,虽然 PG 是近 10 年增长最快的数据库,但 MySQL 依然保持着优势。

8ab6a856-8289-11ee-939d-92fbcf53809c.png

再来看一下 Google Trends 过去一年的对比

8ac23b94-8289-11ee-939d-92fbcf53809c.png

MySQL 也依然是明显领先的。而进一步看一下地域分布的话

8acfb71a-8289-11ee-939d-92fbcf53809c.png

8ad91d96-8289-11ee-939d-92fbcf53809c.png

8aeb73ba-8289-11ee-939d-92fbcf53809c.png

8afb57f8-8289-11ee-939d-92fbcf53809c.png

绝大多数地区依然是 MySQL 领先,份额对比在 60:40 ~ 70:30 之间;少数几个国家如俄罗斯不分伯仲;印度的对比是 85:15;而中国则是达到了 96:4,也是 Google Trends 上差异最明显的国家。

8b069fa0-8289-11ee-939d-92fbcf53809c.png

笔者从 2009 年左右开始学习数据库相关知识,接触到了 MySQL 5.1 和 PG 8.x。而深度在工作中使用则是 2013 年,那时加入 Google Cloud SQL 开始维护数据库,MySQL 从 5.5 开始,到之后 2017 年 Cloud SQL 推出了 PG 服务,从 9.6 开始,后来一直同时维护 Google 内部的 MySQL 和 PG 分支,也就一直关注着两边的发展。18 年回国后,进一步熟悉了国内的生态。 下面就来尝试分析一下 MySQL 在中国流行度遥遥领先于 PG 的原因。

8b19d962-8289-11ee-939d-92fbcf53809c.png

Windows

8b28b7c0-8289-11ee-939d-92fbcf53809c.png

8b392010-8289-11ee-939d-92fbcf53809c.png

MySQL 在 1998 年就提供了 Windows 版本,而 PostgreSQL 则到了 2005 年才正式推出。之前读到的原因是 Windows 早期的版本一直无法很好支持 PostgreSQL 的进程模型。

8b45f010-8289-11ee-939d-92fbcf53809c.png

上手门槛

MySQL 上手更简单,举几个例子:

连 PG,一定需要指定数据库,而 MySQL 就不需要。psql 大家碰到的问题是尝试连接时报错 FATAL Database xxx does not exist。而 mysql 碰到的问题是连接上去后,执行查询再提示 no database selected。

访问控制的配置,首先 PG 和 MySQL 都有用户系统,但 PG 还要配置一个额外的 pg_hba (host-based authentication) 文件。

MySQL 的层级关系是:实例 -> 数据库 -> 表,而 PG 的关系是:实例(也叫集群)> 数据库 > Schema > 表。PG 多了一层,而且从行为表现上,PG 的 schema 类似于 MySQL 数据库,而 PG 的数据库类似于 MySQL 的实例。PG 的这个额外层级在绝大多数场景是用不到的,大家从习惯上还是喜欢用数据库作为分割边界,而不是 schema。所以往往 PG 数据库下,也就一个 public schema,这多出来的一层 schema 就是额外的负担。

因为上面机制的不同,PG 是无法直接做跨库查询的,早年要通过 dblink 插件,后来被 FDW (foreign data wrapper) 取代。

PG 有更加全面的权限体系,数据库对象都有明确的所有者,但这也导致在做测试时,更经常碰到权限问题。

虽然 PostgreSQL 的设计更加严谨,但也更容易把人劝退。就像问卷设计的一个技巧是第一题放一个无脑就能答上来的二选一,这个的目的在于让对方开始答题。

8b50bbc6-8289-11ee-939d-92fbcf53809c.png

性能

最早 Google 搜索和广告业务都是跑在 MySQL 上的,我读到过当时选型的备忘。其实一开始团队是倾向于 PG 的(我猜测是 PG 的工程质量更加符合团队的技术品味),但后来测试发现 MySQL 的性能要好不少,所以就选型了 MySQL。 现在两者的性能对比已经完全不一样了,而且性能和业务关联性很强,取决于 SQL 复杂度,并发,延迟这些不同的组合。目前在大部分场景下,MySQL 和 PG 的性能是相当的。有兴趣可以阅读 Mark Callaghan (https://smalldatum.blogspot.com/) 的文章。

8b5f8d54-8289-11ee-939d-92fbcf53809c.png

8b6c30fe-8289-11ee-939d-92fbcf53809c.png

互联网

8b7aaf12-8289-11ee-939d-92fbcf53809c.png

最重要的是 LAMP 技术栈,Linux + Apache + MySQL + PHP,诞生于 1998 年,和互联网崛起同步,LAMP 技术栈的普及也带火了 MySQL。这个技术栈的绑定是如此之深,所以时至今日,MySQL 官方客户端 MySQL Workbench 也还是不及 phpMyAdmin 流行。

8b849694-8289-11ee-939d-92fbcf53809c.png

8b918840-8289-11ee-939d-92fbcf53809c.png

大厂的号召力

前面提到的 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)。

8ba0c5ee-8289-11ee-939d-92fbcf53809c.png

8bacc6f0-8289-11ee-939d-92fbcf53809c.png

生态

有了大量使用后,自然就有人去解决碰到的各种问题。先是 InnoDB 横空出世,解决了事务和性能问题。主从,中间件分库分表方案解决了海量服务的扩展和高可用问题。各种 MySQL 相关书籍,培训资料也冒了出来,应该不少人都读过高性能 MySQL (High Performance MySQL) 这本书。

8bbea1fe-8289-11ee-939d-92fbcf53809c.png

业界有 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。

8bcebb2a-8289-11ee-939d-92fbcf53809c.png

8bda3eb4-8289-11ee-939d-92fbcf53809c.png

8bed67d2-8289-11ee-939d-92fbcf53809c.png

8bfbe726-8289-11ee-939d-92fbcf53809c.png

8c0febd6-8289-11ee-939d-92fbcf53809c.png

总结和展望

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

8c1d3b42-8289-11ee-939d-92fbcf53809c.png

就在上月,MySQL 5.7 宣布了 EOL,算是给 MySQL 5 系,这个支撑了过去 15 年中国互联网的功勋做了一个告别。 随着 MySQL 的辞旧,PG 的崛起,在这 AI 的黎明,VR 的前夜,下一个 15 年,MySQL 和 PG 之间相爱相杀的故事又该会如何演绎呢。

编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3591

    浏览量

    63371
  • MySQL
    +关注

    关注

    1

    文章

    775

    浏览量

    26005
  • postgresql
    +关注

    关注

    0

    文章

    19

    浏览量

    202

原文标题:为何在中国MySQL远比PostgreSQL流行

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    中小企业在云计算中遥遥领先

    中小企业:在云计算中遥遥领先 几乎不用说的是,中小企业比大企业更快使用云计算的主要原因是前者要么总体缺乏传统的软件系统,要么是这种系统的投资最少。中小企业根本没有太多应用套件或其它大量在售的云服务来
    发表于 11-29 16:22

    祛斑界遥遥领先的技术是什么

    日前,美容科技发达,祛斑的方法各色各样,王者风范在祛斑界的效果已经是遥遥领先了,那么,南宁OPT王者风范祛斑的原理是什么?下面我们就有请南宁整形医院专家给我们介绍。王者风范祛斑的原理是利用光能被皮肤
    发表于 10-10 10:26

    英特尔迎2年空窗期,台积电将遥遥领先

    英特尔(Intel Corp.)距离推出10纳米服务器芯片、将有长达2年的空窗期,Raymond James证券认为,台积电的技术将遥遥领先
    的头像 发表于 09-28 10:35 2705次阅读

    中国的区块链技术已在全球遥遥领先

    浙江省区块链技术应用协会智库专家、33复杂美链改全球合伙人孟晓峰向《链新》曾表示:“目前,中国无论是在区块链标准、还是区块链核心专利方面已在全球遥遥领先。”
    的头像 发表于 12-16 14:06 2174次阅读

    AITO首款纯电SUV上市 问界m5ev驾乘舒适性遥遥领先

    AITO首款纯电SUV上市 问界m5ev驾乘舒适性遥遥领先 AITO首款纯电SUV上市,问界m5ev终于来了,在正在直播的华为全场景发布会上AITO首款纯电SUV上市;余承东说这是最好看的智慧豪华
    的头像 发表于 09-06 16:24 858次阅读
    AITO首款纯电SUV上市 问界m5ev驾乘舒适性<b class='flag-5'>遥遥领先</b>

    余承东发布会说了5次遥遥领先

    据了解,在发布会的90分钟环节中,余承东至少五次提到了“遥遥领先”,二十多次提到了“领先”,每次提到都引起了现场观众的掌声。
    的头像 发表于 09-13 11:05 1488次阅读

    鼎盛合:“遥遥领先”的***技术

    余承东在发布会上一口气说了十几个遥遥领先,以表示对华为芯片技术的突破和革新的振奋和激动。于是“遥遥领先”这个词便在网络上流行开来,甚至有网友将这个词编成段子,说华为的手机哪哪都好就是有噪音,老是能听
    的头像 发表于 09-14 16:09 648次阅读

    来场科技CityWalk 听听遥遥领先的声音

    11月15-19日 深圳会展中心(福田展区)  这里有声音 您听...... 遥遥领先遥遥领先遥遥领先...... 国国际高新技术成果交易会 这里将是新一代信息技术展现未来的新秀场 新一代
    的头像 发表于 09-26 18:28 490次阅读
    来场科技CityWalk  听听<b class='flag-5'>遥遥领先</b>的声音

    耳边的“星闪耳机”华为FreeBuds Pro 3隐隐传来:遥遥领先

    除了备受瞩目的华为Mate60系列,最新一代旗舰耳机华为FreeBuds Pro 3也在发布会上正式亮相。精致的外观和极致的性能配置,都让花粉直呼遥遥领先
    的头像 发表于 09-25 16:30 1043次阅读
    耳边的“星闪耳机”华为FreeBuds Pro 3隐隐传来:<b class='flag-5'>遥遥领先</b>!

    遥遥领先的不止mate60,还有它1999的壳

    遥遥领先的不止mate60,还有它1999的壳
    的头像 发表于 09-28 10:23 446次阅读

    首款车规芯片过测!纽瑞芯FiRa认证UWB芯片数遥遥领先

    纽瑞芯科技的FiRa联盟认证UWB芯片再增两款!自此,纽瑞芯FiRa联盟认证芯片数达到5款,保持全球遥遥领先
    的头像 发表于 10-19 10:18 750次阅读

    华为最新消息一览 华为申请“遥遥领先”商标

    华为申请“遥遥领先”商标 华为余承东的标志语言“遥遥领先”已经成为网络热词;或者说是一个标签、一种情怀,小编甚至在苹果发布会的转播中看到满屏的“遥遥领先”,现在华为申请“遥遥领先”商标
    的头像 发表于 10-30 17:31 517次阅读

    华为被指禁用“遥遥领先”等广告词

    近年来,余承东在华为各类发布会上频繁使用“遥遥领先”一词夸赞公司的技术和产品,该说法虽并非被法律禁止,但因其对市场和消费者的强烈影响,成为了被广泛仿效的营销策略。
    的头像 发表于 04-03 09:30 209次阅读

    华为品牌战略调整 华为已撤回遥遥领先商标申请

    华为品牌战略调整 华为已撤回遥遥领先商标申请 华为已经主动撤回先前提交的“遥遥领先”商标注册申请;这似乎是华为近日正在进行品牌战略调整。 此前在2023年9月,华为申请注册两枚“遥遥领先”商标,国际
    的头像 发表于 04-03 17:07 410次阅读

    华为创始人任正非“禁令”余承东不再提“遥遥领先

    2021年初,余承东在华为手机Mate40发布会上频繁使用“遥遥领先”描述该款设备的性能优势。次年上市的Mate50,其推出的手机与卫星通讯功能亦被其称为“遥遥领先”的技术创新。
    的头像 发表于 04-08 09:38 182次阅读