查看缓慢的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并将输出保存到文件。这将便于使用grep或find等其他文件操作工具进行查看。
mysqldumpslow -r -a /var/log/slow-queries.log > slow.log.parsed
后续步骤
查看慢查询日志后,您应该对需要修复的问题查询有很好的了解。如果使用大量资源的MySQL,如果您的网站仍然运行缓慢,则您可能需要优化MySQL ,以便更好地利用服务器的资源。
完成日志操作后,请务必禁用MySQL慢速查询日志记录。保持日志记录启用状态将不必要地消耗MySQL资源,并可能导致磁盘填充错误的查询。
更多信息
我们的服务器专家可以收费执行这些步骤。要了解有关GoDaddy提供的主机服务的更多信息,请参阅
主机服务菜单。