我有一个非常简单的查询
select * from ap_statistic
在我的服务器上运行。服务器具有相同的硬件和软件配置(CPU 8 核,内存:32G,操作系统:redhat 5.5,mysql 版本:5.1)并运行相同的应用程序。
在服务器 A 中,表的行数ap_statistic
约为 22,512,379,在服务器 B 中,表的行数为 41,438,751。当然,服务器 A 上运行的查询比服务器 B 快,但奇怪的是服务器 B 上的查询速度极慢,需要 1 个多小时,而在服务器 A 上只需 10 分钟。
我使用一些工具监控系统状态,发现在服务器A中运行查询时,系统IO读取速度约为20~30M/s,但在服务器B中为2~3M/s。我试图清理 linux 缓存并重新启动 mysql 服务器,结果都是一样的。而且我尝试将DB从服务器B恢复到服务器A,所以服务器A中的查询非常非常慢并且io读取速度非常慢。我想知道为什么会这样?