首先我想告诉你,我是 Linux 管理的新用户,我需要一些帮助。
我拥有一台 CloudLinux 网络服务器,我面临 MySQL 慢查询问题。问题是我的主机上有几个用户运行大量慢查询,这导致 MySQL 服务终止(我想这是终止。实际上,MySQL 服务器根本没有响应)。
现在的问题是,我该如何调试这些查询?我知道慢查询日志文件。我已经看到了这个文件,但是内容太难读了。那么 Pro 有没有更好的方法呢?
亲切的问候
答案1
使用 Percona 查询摘要工具来构建慢查询日志的摘要。这将帮助您找到最慢的查询:
http://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html
然后使用 mysql 的 EXPLAIN 命令来找出特定查询缓慢的原因:
http://dev.mysql.com/doc/refman/5.0/en/explain.html
希望这可以帮助
答案2
如果您难以理解慢查询日志文件,那么最好购买专业的 DBA 服务来帮助您解决问题。
通常,如果查询占用大量资源并且服务器上存在资源争用(即 CPU、内存和 I/O),则查询运行速度会很慢。
除了购买更大、更快的服务器外,索引与慢速查询相关的表可能是提高性能的一种方法。查看此回答。
您还可以启用查询缓存来帮助减轻重复真正昂贵的查询的需要。
无论如何,这只是一个开始。
--ab1
答案3
EXPLAIN 是获取查询执行情况信息的最基本方法。所有 MySQL 版本都支持它。最重要的是,您将看到如何使用索引。
我为此使用 SQLyog。