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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容