MYSQL在“慢查询日志”中查询速度慢 - 但同样的查询手动运行速度非常快

时间:2012-04-30 15:50:09

标签: mysql sql database performance

作为标题状态,在我的数据库中,各种查询出现在慢速查询日志中,但是当我手动运行它们时,运行速度提高了10倍。

例如,一个相对简单的选择查询,其中有几个order by params,在日志中通常最多需要100秒(是的表非常大)...但是当我在同一个DB上运行它时需要2秒左右。

我已经检查了服务器的性能,当时似乎没有特别的减速或瓶颈,也没有很多查询在那个时期花费很长时间而只是那个。

我该如何开始分析这样的问题?

感谢您的帮助

1 个答案:

答案 0 :(得分:5)

当有问题的查询进入慢速日志时,您的系统可能会更忙。

如果rows_examined大于结果集,则慢速日志可能表示索引未被充分利用。因此,执行时间应该被视为查询有问题的线索,但rows_examined将为您提供更多明确的答案。

查询时间是高负载服务器上的性能测量不佳,因为任何查询在繁忙的服务器上都可能很慢。您应该使用EXPLAIN和SHOW PROFILE来分析您的查询并对其进行改进,以免它们对您的服务器造成太大负担。

在分析查询时使用SELECT SQL_NO_CACHE ...,以便结果不会存储在查询缓存中,否则后续执行同一查询可能会使用查询缓存,从而扭曲查询的任何时间。