数据库响应太慢

时间:2011-02-21 22:34:26

标签: mysql

可以做些什么来确定DB缓慢的原因?

当我在早上运行查询时,它很快就运行了。我得到了输出。

当我在1小时后运行相同的查询时,花了超过2分钟。

可以检查什么来识别这种缓慢?

所有表都已正确编入索引。

2 个答案:

答案 0 :(得分:2)

如果它只是一个运行缓慢的查询,那么arex1337提到的EXPLAIN SELECT...可能会帮助您查看原因。

还值得看看例如在运行查询以查看它正在执行的操作时,框上有vmstat - 您应该能够了解机器是交换,IO绑定,CPU绑定等。

同时检查top以查找占用CPU时间的任何恶意进程。

最后,如果机器正在使用RAID,则可能是,如果驱动器发生故障,RAID阵列可能处于降级状态,这可能会使磁盘访问速度变慢(这仅适用于某些RAID配置,但值得考虑并排除)。

答案 1 :(得分:0)

您可以使用EXPLAIN <your query>获取有关MySQL如何执行查询的信息。也许你会得到一些关于为什么它变慢的提示。

EXPLAIN SELECT ... FROM ... WHERE ...;

另外,也许你只是一个慢查询,第二次很快,因为结果是缓存的?