如何确定慢查询?

时间:2012-10-24 00:48:11

标签: mysql indexing database-management mysql-slow-query-log

我的网站正在经历非常缓慢的加载时间。我怀疑它可能是javascript或php导致更长的加载时间,但我已经在YSlow中测试了我的网站,它的等级是B,我觉得还不错。

现在我想检查我的数据库是否有查询错误,数据库索引会导致我的网站加载速度变慢。

是否有一些教程或技巧我可能会阅读或尝试测试数据库以确定是否存在慢查询?有关数据库管理的任何提示吗?

3 个答案:

答案 0 :(得分:5)

为了加快查询执行速度,我总是回到2个咒语 -

  1. 索引,索引和索引。
  2. 尝试尽可能地摆脱JOINS
  3. 有一些经过试验和测试的方法可以清除慢速查询。您需要启用slow query log。这会记录所有执行时间超过x秒的查询。 x由mysql.conf中指定。

    慢速查询开始登录日志。您可以使用EXPLAIN分析每个查询,并适当添加索引以加快查询执行速度。

答案 1 :(得分:0)

我在PDO之前有一个瘦的数据库抽象层(以前在MySQL之上)我已经将简单的查询记录编入其中,我可以打开和关闭它 - 它允许我获取查询的报告以及如何每个人都拿了很久。因此,不是简单的截止 - 不管是长查询还是不是 - 我都会查看所有查询时间。

MySQL的慢查询日志很好,但它的一秒分辨率不足以满足我的需求。对我来说,很多时候,一个需要200毫秒的查询表明存在错误

我在这里展示我的年龄。在快速检查MySQL手册之后,事实证明MySQL的long_query_time可以指定自MySQL 5.1.27以来的微秒分辨率!尽管如此,我的方法仍然很方便。

答案 2 :(得分:0)

sql性能的良好教程 - focused on MySql。对于连接,如果你无法摆脱它们 - 使用正确的:LEFT JOIN,RIGHT,INNER,OUTER