硬件信息: 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差异到底是怎么产生的?
经过查证这个是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下有这么一个优化:
数据库调优。
收起这是肯定的啊
收起