可以做些什么来确定DB缓慢的原因?
当我在早上运行查询时,它很快就运行了。我得到了输出。
当我在1小时后运行相同的查询时,花了超过2分钟。
可以检查什么来识别这种缓慢?
所有表都已正确编入索引。
答案 0 :(得分:2)
如果它只是一个运行缓慢的查询,那么arex1337提到的EXPLAIN SELECT...
可能会帮助您查看原因。
还值得看看例如在运行查询以查看它正在执行的操作时,框上有vmstat
- 您应该能够了解机器是交换,IO绑定,CPU绑定等。
同时检查top
以查找占用CPU时间的任何恶意进程。
最后,如果机器正在使用RAID,则可能是,如果驱动器发生故障,RAID阵列可能处于降级状态,这可能会使磁盘访问速度变慢(这仅适用于某些RAID配置,但值得考虑并排除)。
答案 1 :(得分:0)
您可以使用EXPLAIN <your query>
获取有关MySQL如何执行查询的信息。也许你会得到一些关于为什么它变慢的提示。
EXPLAIN SELECT ... FROM ... WHERE ...;
另外,也许你只是一个慢查询,第二次很快,因为结果是缓存的?