电信运营商性能windowsMySQL

mysql在windows操作系统上磁盘读io很差?

硬件信息: CPU:i7-10875H   内存:32G  硬盘:1TSSD。
操作系统:Windows 11 家庭中文版及windows10
mysql版本:8.0.21
测试方式:建一张200M的表,bufferpool默认128M,对表求count,在windows任务管理器下查看磁盘性能,磁盘读io一直在4-7M/S,求count需要50+S。

同一台机器上的centos虚拟机,同样的mysql版本,同样的数据测试,磁盘读io一直在100-200M/S,求count第一次需要2S。
同一台机器上windows环境的oracle11可以到2G/S。

对比了windows和centos环境的mysql配置,只有innodb_flush_method这一项确实是不同操作系统参数不一致,其他参数都一样,不知道这个io差异到底是怎么产生的?

参与11

3同行回答

青衣老刀青衣老刀系统分析师亿阳信通
经过查证这个是mysql8在windows下的bug,主要是存在于8.0.17到8.0.23这几个版本https://bugs.mysql.com/bug.php?id=103213不过看了mysql8.0.17版本和8.0.24版本的更新文档,好像没有明确的指出做了什么优化,只能看出8.0.17版本对count(*)做了优化,然后8.0.24版本针对windows下...显示全部

经过查证这个是mysql8在windows下的bug,主要是存在于8.0.17到8.0.23这几个版本
https://bugs.mysql.com/bug.php?id=103213
不过看了mysql8.0.17版本和8.0.24版本的更新文档,好像没有明确的指出做了什么优化,只能看出8.0.17版本对count(*)做了优化,然后8.0.24版本针对windows下有这么一个优化:

  • InnoDB: On Windows, stalls were caused by concurrent queries where the number of parallel read threads exceeded the number of machine cores. (Bug #32224707, Bug #101789)SELECT COUNT(*)
    这里虽然对应bug不是同一个,但是确实在这个版本以后看到这个问题明显得到了改善。
    同时验证了5.7版本和mariadb,都不存在这个问题。
收起
电信运营商 · 2022-10-13
浏览938
奔跑的蜗牛奔跑的蜗牛高级软件开发工程师武汉家事易农业科技有限公司
数据库调优。显示全部

数据库调优。

收起
软件开发 · 2022-09-22
浏览1022
  • 对比了centos和windows下两个mysql下570余个参数,实际上只有innodb_flush_method、max_write_lock_count、max_seeks_for_key这几项有明显差异,查阅了mysql相关文档,也没有发现有提升磁盘读io的参数,我可以通过调整什么样的参数来实现在它windows下做磁盘读的时候提升效率吗?
    2022-09-22
zftangzftang其它小白一枚
这是肯定的啊显示全部

这是肯定的啊

收起
互联网服务 · 2022-09-22
浏览1194
  • 为什么肯定?翻了相关文档并没有什么地方提过mysql在windows和linux下io会差那么多呢?而且我的centos是在windows主机上的虚拟机,它理应更差才对。
    2022-09-22
  • 举个通俗的例子:用centos比windows提升30%的性能,用了虚拟机比宿主低了10%的性能,最终结果就是虚拟机的centos的io性能还会超出windows20%
    2022-09-22
  • 我在同样windows环境下的oracle能达到2G/S,这说明我当前操作系统的磁盘io并没有低到那种程度把
    2022-09-22
  • 你这个逻辑怎么来的呢?有相关资料和数据证明吗?100-200M/S和4M/S的差距是20%体现出来的吗?
    2022-09-22

提问者

青衣老刀
系统分析师亿阳信通
擅长领域: 数据库服务器信创中间件

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2022-09-22
  • 关注会员:3 人
  • 问题浏览:3409
  • 最近回答:2022-10-13
  • X社区推广