定位慢查询的两种方法以及使用explain分析SQL
NO.1 慢查询日志定位解析 MySQL 的慢查询日志记录的内容是:在 MySQL 中响应时间超过参数 long_query_time(单位秒,默认值 10)设置的值并且扫描记录数不小于 min_examined_row_limit(默认值0)的语句。
慢查询日志使用步骤: 使用慢查询日志,一般分为四步: 开启慢查询日志。 设置慢查询阀值。 确定慢查询日志路径。 确定慢查询日志的文件名。
开启慢查询日志(默认是关闭的):
接下来在确定慢查询日志后可以通过:tail -n5 这里对上方的执行结果详细描述一下: tail -n5:只查看慢查询文件的最后5行 Time:慢查询发生的时间 User@Host:客户端用户和IP Query_time:查询时间 Lock_time:等待表锁的时间 Rows_sent:语句返回的行数 Rows_examined:语句执行期间从存储引擎扫描的行数
通过 show processlist定位慢查询 有时慢查询正在执行,已经导致数据库负载偏高了,而由于慢查询还没执行完,因此慢查询日志还看不到任何语句。此时可以使用 show processlist 命令判断正在执行的慢查询。show processlist 显示哪些线程正在运行。如果有 PROCESS 权限,则可以看到所有线程。否则,只能看到当前会话的线程。 知识扩展:如果不使用 FULL 关键字,在 info 字段中只显示每个语句的前 100 个字符,如果想看语句的全部内容可以使用 full 修饰(show full processlist)。
这里对上面结果重点参数解释一下: (编辑:衡水站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |