GoDaddy 帮助

我们尽最大努力为您翻译此页。 也可以使用英语页面。

查看缓慢的MySQL查询

您已启用慢查询日志记录且现在有要查看的日志。如果您尚未启用日志记录,您可以在此处查找步骤。

分析日志

日志位置:
/var/log/slow-queries.log
注意:如果在此位置找不到日志,请验证my.cnf中的条目,并确保MySQL在进行更改后已重新启动。
格式:
#时间:210905 6:33:11#用户@主机:dbuser [dbname] @主机名[1.2.3.4]#查询时间:12.116250锁定时间:0.000035行数:0行检查:201565使用dbname; SET timestamp = 1409898791; ...在这里慢速查询...

当您收到上述格式的几十个(如果不是几百个)条目时,日志可能会让人不知所措。为了使日志更具可读性,请使用mysqldumpslow解析日志。

mysqldumpslow -r -a /var/log/mysql/mysqld.slow.log
输出将包含重要的信息,例如时间查询
计数:2时间= 20.54s(41s)锁定= 0.02s(0s)行= 12547802(0),dbuser [dbuser] @localhost选择*从db_exp_table WHERE site_user_id ='214380'ORDER BY site_id DESC LIMIT 0,2计数: 1时间= 21.74s(21s)锁定= 0.01s(0s)行= 12547802(0),dbuser [dbuser] @localhost选择* FROM db_exp_table WHERE site_user_id ='214380'ORDER BY site_id DESC LIMIT 0,2 Count:1 Time = 23.86s(23s)Lock = 0.20s(0s)行= 12547802(0),dbuser [dbuser] @localhost选择* FROM db_exp_table WHERE site_user_id ='214380'ORDER BY site_id DESC LIMIT 0,2

查看上面的示例,我们有1个查询运行了20-24秒。这会导致您的网站出现问题,从加载速度慢到超时错误(不断旋转)。该查询正在检查12,547,802行。在具有超过1200万行的表上运行的大型查询(即,select *)可能会导致不良的用户体验。优化查询(即选择“咖啡桌”)或减少检查的行(即存档旧数据)将加快查询的速度。

如果日志文件很大,请运行mysqldumpslow并将输出保存到文件。这将便于使用grepfind等其他文件操作工具进行查看。

mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed

后续步骤

查看慢查询日志后,您应该对需要修复的问题查询有很好的了解。如果使用大量资源的MySQL,如果您的网站仍然运行缓慢,则您可能需要优化MySQL ,以便更好地利用服务器的资源。

完成日志操作后,请务必禁用MySQL慢速查询日志记录。保持日志记录启用状态将不必要地消耗MySQL资源,并可能导致磁盘填充错误的查询。

更多信息

我们的服务器专家可以收费执行这些步骤。要了解有关GoDaddy提供的主机服务的更多信息,请参阅

主机服务菜单