【发布时间】:2012-12-14 02:20:36
【问题描述】:
我的暂存服务器上的查询运行速度比本地开发机器慢 5 倍。
Stackoverflow 不想很好地处理格式;查询、描述和解释位于here
查看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 问题吗? (gist 中的完整分析信息)
【问题讨论】:
-
嗯,这两台机器是不是规格差不多?
-
你怎么知道它运行慢了 5 倍?
-
另外,您的登台服务器上还有其他东西在运行吗?
-
更新了问题,希望能回答提出的问题
-
@Tyler:是的,它可以。您的开发机器的 RAM 是另一台机器的 16 倍。
标签: mysql performance indexing