MySql如何定位慢查询

定位慢查询一般有几种方式如下

1、业务驱动

业务反馈,查询很慢/

2、测试驱动

测试进行压力测试时,发现某些查询很慢。

3、慢查询日志

自己查询慢查询日志。

show variables like 'slow_query_log'
查看slow_query_log是否有开启。

set global slow_query_log = on
设置开启

set global slow_query_log_file = '/var/lib/mysql/gupaoedu-slow.log'
设置慢查询日志

set global log_queries_not_using_indexes = on
没有命中索引的sql查询要不要记录到慢查询。

set global long_query_time = 0.1 (秒)
慢查询超过0.1秒的就记录进慢查询日志中。

image.png

慢查询日志分析

Time :日志记录的时间
User@Host:执行的用户及主机
Query_time:查询耗费时间 Lock_time 锁表时间 Rows_sent 发送给请求方的记录
条数 Rows_examined 语句扫描的记录条数
SET timestamp 语句执行的时间点
select .... 执行的具体语句

使用mysql提供的工具

mysqldumpslow -t 10 -s at /var/lib/mysql/gupaoedu-slow.log


image.png

其他工具: mysqlsla 、 pt-query-digest

你可能感兴趣的:(MySql如何定位慢查询)