网易首页 > 网易号 > 正文 申请入驻

MySQL版本越高,性能越差,这你受得了吗?

0
分享至

在 Percona,我们时刻关注用户的需求,并尽力满足他们。我们特别监控了 MySQL 版本的分布和使用情况,发现了一个引人注目的趋势:从版本 5.7 迁移到 8.x 的步伐明显缓慢。更准确地说,许多用户仍需坚持使用 5.7 版本



基于这一发现,我们采取了几项措施。首先,我们与一些仍在使用 MySQL 5.7 的用户聊了聊,探究他们不想迁移到 8.x 的原因。

为此,我们制定了 EOL 计划,为 5.7 版本提供延长的生命周期支持[1],确保需要依赖旧版本、二进制文件及代码修复的用户能够得到专业支持。

同时,我们对不同版本的 MySQL 进行了广泛测试,以评估是否有任何性能下降。虽然测试尚未结束,但我们已经收集了足够的数据,开始绘制相关图表。本文是对我们测试结果的初步解读。

剧透警告:对于像我这样热爱 Sakila 的人来说,这些发现可能并不令人高兴。 译者注:Sakila 是 MySQL 的吉祥物海豚
作者:Percona Blog,Marco Tusa。Percona 是 MySQL 生态的重要贡献者,开发了知名的PT系列工具,MySQL备份工具,监控工具与发行版。 译者:冯若航,网名 Vonng, 作者,PostgreSQL 专家与布道师。数据库老司机,。
测试 假设

测试的方法五花八门,我们当然明白,测试结果可能因各种要素而异,(例如:运行环境, MySQL 服务器配置)。

但如果我们在同样的平台上,比较同一个产品的多个版本,那么可以合理假设,在不改变 MySQL 服务器配置的前提下,影响结果的变量可以最大程度得到控制。

因此,我首先根据 MySQL 默认配置 运行性能测试,这里的工作假设很明确,你发布产品时使用的默认值,通常来说是最安全的配置,也经过了充分的测试。

当然,我还做了一些 配置优化[2] ,并评估优化后的参数配置会如何影响性能。

我们进行哪些测试?

我们跑了 sysbench[3] 与 TPC-C Like[4] 两种 Benchmark。可以在这里找到完整的测试方法与细节[5],实际执行的命令则可以在参考链接里找到 [6,7]

结果

我们跑完了上面一整套测试,所有的结果都可以在这里找到[8]。

但为了保持文章的简洁和高质量,我在这里只对 Sysbench 读写测试和 TPC-C 的结果进行分析与介绍。

之所以选择这两项测试,是因为它们直接且全面地反映了 MySQL 服务器的表现,同时也是最常见的应用场景。其他测试更适合用来深入分析特定的问题。

在此报告中,下面进行的 sysbench 读写测试中,写操作比例约为 36%,读操作比例约为 64%,读操作由点查询和范围查询组成。而在 TPC-C 测试中,读写操作的比例则均为 50/50 %。

sysbench 读写测试

首先我们用默认配置来测试不同版本的 MySQL。


小数据集,默认配置:


小数据集,优化配置:



大数据集,默认配置:



大数据集,优化配置:



前两幅图表很有趣,但很显然说明了我们不能拿默认配置来测性能,我们可以用它们作为基础,找出更好的默认值。

Oracle 最近决定在 8.4 中修改许多参数的默认值,也证实了这一点(参见文章[9])。

有鉴于此,我将重点关注通过优化参数配置后进行的性能评测结果。看看上面的图表,我们不难看出:

1.使用默认值的 MySQL 5.7 ,在两种情况(大小数据集)下的表现都更好2.MySQL 8.0.36 因为默认配置参数不佳,使其在第一种(小数据集)的情况表现拉垮。但只要进行一些优化调整,就能让它的性能表现超过 8.4,并更接近 5.7。

TPC-C 测试

如上所述,TPC-C 测试应为写入密集型,会使用事务,执行带有 JOIN,GROUP,以及排序的复杂查询。

我们使用最常用的两种 [10],可重复读(Repeatable Read),以及读已提交(Read Committed),来运行 TPC-C 测试。

尽管我们在多次重复测试中遇到了一些问题,但都是因为一些锁超时导致的随机问题。

因此尽管图中有一些空白,但都不影响大趋势,只是压力打满的表现。

TPC-C,优化配置,RR隔离等级:


TPC-C,优化配置,RC隔离等级:


在本次测试中,我们可以观察到,MySQL 5.7 的性能比其他 MySQL 版本要更好。

与 Percona 的 MySQL 和 MariaDB 比会怎样?

为了简洁起见,我将仅在这里介绍优化参数配置的测试,原因上面说过了,默认参数没毛用没有。

sysbench读写,小数据集的测试结果:



sysbench读写,大数据集的测试结果:


当我们将 MySQL 的各个版本与 Percona Server MySQL 8.0.36 以及 MariaDB 11.3 进行对比时, 可以看到 MySQL 8.4 只有和 MariaDB 比时表现才更好,与 MySQL 8.0.36 比较时仍然表现落后。

TPC-C

TPC-C,RR隔离等级的测试结果:



TPC-C,RC隔离等级的测试结果:



正如预期的那样,MySQL 8.4 在这里的表现也不佳,只有 MariaDB 表现更差垫底。

顺便一提,Percona Server for MySQL 8.0.36 是唯一能处理好并发争用增加的 MySQL。

这些测试说明了什么?

坦白说,我们在这里测出来的结果,也是我们大多数用户的亲身经历 —— MySQL 的性能随着版本增加而下降

当然,MySQL 8.x 有一些有趣的新增功能,但如果你将性能视为首要且最重要的主题,那么 MySQL 8.x 并没有更好

话虽如此,我们必须承认 —— 大多数仍在使用 MySQL 5.7 的人可能是对的(有成千上万的人)。为什么要冒着极大的风险进行迁移,结果发现却损失了相当大一部分的性能呢?

关于这一点,可以用 TPC-C 测试结果来说明,我们可以把数据转换为每秒事务数吞吐量,然后比较性能损失了多少:

TPC-C,RR隔离等级,MySQL 8.4 的性能折损:



TPC-C,RC隔离等级,MySQL 8.4 的性能折损:


我们可以看到,在两项测试中,MySQL 8.x 的性能劣化都非常明显,而其带来的好处(如果有的话)却并不显著。

使用数据的绝对值:

TPC-C,RR隔离等级,MySQL 8.4 的性能折损:



TPC-C,RC隔离等级,MySQL 8.4 的性能折损:



在这种情况下,我们需要问一下自己:我的业务可以应对这样的性能劣化吗?

一些思考

当年 MySQL 被卖给 SUN Microsystems 时,我就在 MySQL AB 工作,我对这笔收购非常不高兴。

当 Oracle 接管 SUN 时,我非常担心 Oracle 可能会决定干掉 MySQL,我决定加入另一家公司继续搞这个。

此后几年里,我改了主意,开始支持和推广 Oracle 在 MySQL 上的工作。从各种方面来看,我现在依然还在支持和推广它。

他们在规范开发流程方面做得很好,代码清理工作也卓有成效。

但是,其他代码上却没啥进展,我们看到的性能下降,就是这种缺乏进展的代价;请参阅 Peter 的文章《Oracle 正在杀死 MySQL 》。[11]

另一方面,我们不得不承认 Oracle 确实在 OCI/MySQL/Heatwave 这些产品的性能和功能上投资了很多 —— 只不过这些改进没有体现在 MySQL 的代码中,无论是社区版还是企业版。

再次强调,我认为这一点非常可悲,但我也能理解为什么。

当 AWS 和 Google 等云厂商使用 MySQL 代码、对其进行优化以供自己使用、赚取数十亿美元,甚至不愿意将它们的代码回馈时,凭什么 Oracle 就要继续免费优化 MySQL 的代码?

我们知道这种情况已经持续了很多年了,我们也知道这对开源生态造成了极大的负面影响。

MySQL 只不过是更大场景中的一块乐高积木而已,在这个场景中, 云计算公司正在吞噬其他公司的工作成果,自己用来发大财

我们又能做什么?我只能希望我们能很快看到不一样的东西:开放代码,投资项目,帮助像 MySQL 这样的社区收复失地。

与此同时,我们必须承认,许多客户与用户使用 MySQL 5.7 是有非常充分的理由的。在我们能解决这个问题之前, 他们可能永远也不会决定迁移,或者,如果必须迁移的话,迁移到其他替代方案上,比如

然后,Sakila 将像往常一样,因为人类的贪婪而缓慢而痛苦地死去,从某种意义上说,这种事儿并不新鲜,但很糟糕。


愿 MySQL 永远快乐


References

[1] 延长的生命周期支持: https://www.percona.com/post-mysql-5-7-eol-support
[2] 配置优化: https://github.com/Tusamarco/blogs/blob/master/sakila_where_are_you_going/config_changes.txt
[3] sysbench: https://github.com/akopytov/sysbench
[4] TPC-C Like: https://www.tpc.org/tpcc/
[5] 测试方法与细节: https://github.com/Tusamarco/benchmarktools/blob/main/docs/plan.md
[6] sysbench: https://github.com/Tusamarco/benchmarktools/blob/main/software/fill_sysbench_map.sh
[7] TPC-C: https://github.com/Tusamarco/benchmarktools/blob/main/software/fill_tpcc_map.sh
[8] 所有的结果都可以在这里找到: https://github.com/Tusamarco/blogs/tree/master/sakila_where_are_you_going
[9] 参见文章: https://lefred.be/content/mysql-8-4-lts-new-production-ready-defaults-for-innodb/
[11] Oracle 最终会杀死 MySQL 吗?: https://www.percona.com/blog/can-oracle-save-mysql/

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
外媒:朝鲜4个旅2万大军将于一周后抵达乌东,西方担心的事发生了

外媒:朝鲜4个旅2万大军将于一周后抵达乌东,西方担心的事发生了

小lu侃侃而谈
2024-06-30 21:28:04
时隔16年,43岁劳伦·杰克逊再次提及姚明:我喜欢他!

时隔16年,43岁劳伦·杰克逊再次提及姚明:我喜欢他!

十点街球体育
2024-07-02 20:09:22
人们发现了一个秘密,俄国大使馆的账号,竟然是一些中国人在运营

人们发现了一个秘密,俄国大使馆的账号,竟然是一些中国人在运营

走读新生
2024-07-02 18:03:15
万万没想到!!!
联合国140:0通过涉中国决议!

万万没想到!!! 联合国140:0通过涉中国决议!

仰望沧海
2024-07-02 23:35:43
5年2亿!感谢哈登:前无古人的NBA纪录诞生了

5年2亿!感谢哈登:前无古人的NBA纪录诞生了

篮球大视野
2024-07-02 15:56:28
“辽宁理工大学”不存在 ,到处参加学术活动的“教授魏新河”是谁?

“辽宁理工大学”不存在 ,到处参加学术活动的“教授魏新河”是谁?

环球网资讯
2024-06-30 13:44:07
小学关停了一半!学生荒,从东北开始了!

小学关停了一半!学生荒,从东北开始了!

城市财经
2024-07-01 11:47:40
一女子信陌生男是“太白金星”之子,陪他睡觉数月,为老公治癌症

一女子信陌生男是“太白金星”之子,陪他睡觉数月,为老公治癌症

汉史趣闻
2024-07-02 10:34:16
大S丑态曝光!具俊晔公布妻子居家状态,随意睡地板不顾形象

大S丑态曝光!具俊晔公布妻子居家状态,随意睡地板不顾形象

青芳草
2024-07-02 16:24:11
嫦娥六号携月背采样成功返回,外媒:一个极其愚蠢的原因让NASA不能研究宝贵样本

嫦娥六号携月背采样成功返回,外媒:一个极其愚蠢的原因让NASA不能研究宝贵样本

环球网资讯
2024-07-01 14:34:11
网易号辟谣声明

网易号辟谣声明

网易号官方平台
2024-07-02 19:16:14
外媒报道印尼羽协公布国青球员张志杰去世原因,网上一片质疑声

外媒报道印尼羽协公布国青球员张志杰去世原因,网上一片质疑声

尘语者
2024-07-02 18:30:43
大批军警包围三个集装箱,意大利称收美国情报:扣押翼龙无人机!

大批军警包围三个集装箱,意大利称收美国情报:扣押翼龙无人机!

橘色数码
2024-07-02 21:54:26
3年1.503亿美元!米切尔提前顶薪续约骑士 未来可签3.8亿肥约

3年1.503亿美元!米切尔提前顶薪续约骑士 未来可签3.8亿肥约

罗说NBA
2024-07-02 21:07:36
新华时评|见义勇为 其德不孤

新华时评|见义勇为 其德不孤

新华社
2024-07-02 22:22:37
库里深情告别克莱:谢谢你所做的一切 我们是一辈子的水花兄弟!

库里深情告别克莱:谢谢你所做的一切 我们是一辈子的水花兄弟!

直播吧
2024-07-03 01:33:26
平均月薪1.4万!深圳官方说去年工资涨了,网友很诧异:三年没涨过一毛钱!

平均月薪1.4万!深圳官方说去年工资涨了,网友很诧异:三年没涨过一毛钱!

老郭在学习
2024-07-02 23:53:05
后续:打人的复旦学生开除学籍,其父身份疑曝,怪不得退学那么难

后续:打人的复旦学生开除学籍,其父身份疑曝,怪不得退学那么难

糖逗在娱乐
2024-07-02 19:28:30
罐车运输乱象调查:卸完煤制油直接装运食用大豆油

罐车运输乱象调查:卸完煤制油直接装运食用大豆油

重案组37号
2024-07-02 08:15:32
新加坡前外长杨荣文:美国想按自身形象改变中国完全不现实

新加坡前外长杨荣文:美国想按自身形象改变中国完全不现实

澎湃新闻
2024-07-02 19:20:26
2024-07-03 05:34:44
开源中国
开源中国
每天为开发者推送最新技术资讯
6359文章数 34231关注度
往期回顾 全部

科技要闻

旧车比新车贵,比亚迪断了二手车贩子活路

头条要闻

德米拉尔梅开二度 居勒尔助攻 土耳其2-0领先奥地利

头条要闻

德米拉尔梅开二度 居勒尔助攻 土耳其2-0领先奥地利

体育要闻

世界第二打第三,成了一场英格兰模仿秀

娱乐要闻

未火先塌?流量的路子不好走啊

财经要闻

张军:房地产是经济收缩的受害者而非原因

汽车要闻

18.96万 奕派eπ007 540纯电四驱Pro上市

态度原创

手机
家居
旅游
亲子
公开课

手机要闻

OPPO A3发布:售1599元起 抗摔耐磨还防水

家居要闻

江畔雅居 石质与木色的现代风

旅游要闻

官宣!黄鹤楼公园等55家武汉旅游景区今起免预约!

亲子要闻

小姑娘哭得好伤心

公开课

连中三元是哪三元?

无障碍浏览 进入关怀版