定位慢查询一般有几种方式如下
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秒的就记录进慢查询日志中。
慢查询日志分析
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
网友评论