我有一个查询在我的登台服务器上运行慢 5 倍,而不是我的本地开发机器。
Stackoverflow 不想很好地处理格式;查询、描述和解释位于此处
查看describe
语句,我看不出本地模式和远程模式之间有任何区别。
2 台机器的记录数处于同一数量级(500k 与 600k)
编辑以回应评论
这是我将查询放入 MySQL Workbench 并查看查询时间的非常不科学的方法。本地查询时间大约为 1.3 秒,远程查询时间大约为 5.2 秒(因此慢了 4 倍)。我确信有更好的方法来测试这个查询时间。
机器不一样。我的开发机器是一台配备 8 GB RAM 的 Mac Book Pro。登台服务器是一个具有 512 兆 RAM 的 linode VPS。登台服务器上不应该有太多负载(我是唯一使用它的人)。我注意到大多数查询在本地机器和登台服务器上几乎在相同的时间范围内运行,所以我很困惑为什么这个查询有如此截然不同的时间范围。
内存问题
由于没有使用临时表(在 中没有提及EXPLAINS
),RAM 的数量仍然是一个问题吗?
输出自free
total used free shared buffers cached
Mem: 508576 453880 54696 0 4428 254200
-/+ buffers/cache: 195252 313324
Swap: 262140 19500 242640
概要添加到 Gist
看起来远程需要 2.5 秒“发送数据”,而本地只需要 0.5 秒。这是 I/O 问题吗?(要点中的完整分析信息)