2010-03-29 81 views
4

我将如何监视MySQL来检测正在运行缓慢的SELECT?鉴定出性能差的SELECT后,我将如何分析以改进它?如何检查登录mysql

回答

1

MySQL保留一个'慢查询日志',它将为您提供有关运行缓慢的查询的信息。

我认为它是默认启用的,它的位置在MySQL .ini文件中设置。

有关慢查询日志的更多信息,请参见here

您可以使用EXPLAIN获取有关MySQL如何执行查询的信息 - 只需在查询前输入EXPLAIN即可。关于如何解释结果,有一篇很好的文章here

2

您将启用slow query日志记录,例如,这下[mysqld]部分

set-variable=slow_query_log=on 
set-variable=long_query_time=20 

添加到您的my.cnf这将记录以20秒以上的所有查询到一个“主机名” -slow.log,例如/var/lib/mysql/localhost-slow.log

然后,您会检查这些查询,并至少运行EXPLAIN,并查明是什么让它变慢,添加索引,重写SQL等 - 虽然优化查询是另外一本书。