一. 开启慢查询
– 查看
show variables like 'slow_query%';
show variables like 'long_query_time';
show variables like 'log_queries_not_using_indexes';
临时性开启慢日志
– 开启+设置 使用root用户,关闭连接后重新查询可看到修改后的值,只在当前服务有效,mysql重启后配置会还原回10,永久生效需修改配置文件;
set global slow_query_log='ON';
set global slow_query_log_file='/usr/local/mysql/data/slow.log';
set global log_queries_not_using_indexes='ON';
set global long_query_time=1;
长时间开启慢日志
修改my.cnf,在[mysqld]下的下方加入配置
[mysqld]
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/data/slow.log
long_query_time = 1
log_queries_not_using_indexes = 1
修改完配置文件记得重启sql服务
service mysqld restart
或者
systemctl restart mysql
注释
slow_query_log 慢查询开启状态
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time 查询超过多少秒才记录
log_queries_not_using_indexes 如果运行的SQL语句没有使用索引,则mysql数据库同样会将这条SQL语句记录到慢查询日志文件中
分析pt-query-digest输出结果
1. 第一部分:总体统计结果
= 该工具执行日志分析的用户时间,系统时间,物理内存占用大小,虚拟内存占用大小
= 910ms user time, 110ms system time, 25.95M rss, 220.34M vsz
= 工具执行时间
= Current date: Tue Jul 31 10:37:16 2018
= 运行分析工具的主机名
= Hostname: localhost.localdomain
= 被分析的文件名
= Files: mysql_slow_query.log
= 语句总数量,唯一的语句数量,QPS,并发数
= Overall: 6 total, 1 unique, 0.01 QPS, 0.01x concurrency ________________
= 日志记录的时间范围
= Time range: 2018-07-31 10:17:33 to 10:36:36
= 属性 总计 最小 最大 平均 95% 标准 中等
= Attribute total min max avg 95% stddev median
= ============ ======= ======= ======= ======= ======= ======= =======
= 语句执行时间
= Exec time 16s 1s 5s 3s 5s 2s 4s
= 锁占用时间
= Lock time 0 0 0 0 0 0 0
= 发送到客户端的行数
= Rows sent 6 1 1 1 1 0 1
= select语句扫描行数
= Rows examine 0 0 0 0 0 0 0
= 查询的字符数
= Query size 90 15 15 15 15 0 15
2. 第二部分:查询分组统计结果
= Profile
= 语句排名 ID 响应时间 执行次数 平均每次执行响应时间 响应比率
= Rank Query ID Response time Calls R/Call V/M
= ==== ================================== ============== ===== ====== ====
= 1 0x59A74D08D407B5EDF9A57DD5A41825CA 16.0113 100.0% 6 2.6685 1.19 SELECT
3. 每一种查询的详细统计结果
= Query 1: 0.01 QPS, 0.01x concurrency, ID 0x59A74D08D407B5EDF9A57DD5A41825CA at byte 790
= This item is included in the report because it matches --limit.
= Scores: V/M = 1.19
= Time range: 2018-07-31 10:17:33 to 10:36:36
= Attribute pct total min max avg 95% stddev median
= ============ === ======= ======= ======= ======= ======= ======= =======
= Count 100 6
= Exec time 100 16s 1s 5s 3s 5s 2s 4s
= Lock time 0 0 0 0 0 0 0 0
= Rows sent 100 6 1 1 1 1 0 1
= Rows examine 0 0 0 0 0 0 0 0
= Query size 100 90 15 15 15 15 0 15
= String:
= Databases test
= Hosts 192.168.80.1
= Users root
= Query_time distribution
= 1us
= 10us
= 100us
= 1ms
= 10ms
= 100ms
= 1s ================================================================
= 10s+
= EXPLAIN /*!50100 PARTITIONS*/
SELECT SLEEP(5)\G