2010-09-16 30 views
1

如何记录执行所有查询,MYSQL查询执行多少秒以提高数据库性能? 我正在使用PHP性能调整MYSQL数据库

+1

也许你要检查哪个查询是最慢的尝试MySQL的慢查询日志,启用此使用 mysqld的--log慢查询[=文件名] 它将记录上的文件慢查询 – 2010-09-16 09:12:27

+1

创建包装函数来处理所有查询,这样你可以将每个时间都保存到一个日志中。 – 2010-09-16 09:13:46

+0

让我为你做一个搜索:http://stackoverflow.com/search?tab=votes&q=[mysql]%20performance – fabrik 2010-09-16 09:29:01

回答

1

Use the slow query log用于捕获运行时间超过指定时间限制(缺省情况下为2秒)的查询。这会告诉你最坏的罪犯;可能很多都是低垂的果实,可以通过适当的指标进行固定。

它不会捕获不同类型的代码异味:在紧密循环中多次运行的相对较快的查询。

如果您愿意,您可以将慢速查询限制设置为0,它将记录全部查询 - 请注意,这本身会降低服务器的速度。

+0

我在控制台中运行了上述命令并执行了我的应用程序frm浏览器,但没有任何记录:(怎么办? – 2010-09-16 12:11:43

+0

@Ashwin:更好的选择是更改MySQL配置文件中的设置。缓慢的查询被记录下来,这意味着你没有任何查询的运行时间超过指定的时间 - 你真的*有*可测量的性能问题吗?正如我所说的,你可以在你的配置中将慢速查询限制设置为0,但这个数量的记录可能会减慢服务器的速度 – Piskvor 2010-09-16 12:17:10

+0

是的,没有记录任何东西,但是当我给出了日志查询 - 不使用索引 – 2010-09-16 13:03:52