告别慢SQL-01什么是慢SQL

331 阅读1分钟

什么是慢查询

MySQL可以通过慢日志定位到慢查询

开启慢查询收集

show variables  like '%slow_query_log';

设置慢查询参数

超过设置参数的sql将被记录到慢日志中

show variables like 'long_query_time%';

统计慢查询次数

show global status like '%Slow_queries%';

慢日志

show variables  like '%slow_query_log_file%';

订阅慢日志

标准慢日志分析

pt-query-digest慢日志分析工具(订阅慢日志时是该格式)

线上实例

参数详解

# 该工具执行日志分析的用户时间,系统时间,物理内存占用大小,虚拟内存占用大小
# 340ms user time, 140ms system time, 23.99M rss, 203.11M vsz
# 工具执行时间
# Current date: Fri Nov 25 02:37:18 2016
# 运行分析工具的主机名
# Hostname: localhost.localdomain
# 被分析的文件名
# Files: slow.log
# 语句总数量,唯一的语句数量,QPS,并发数
# Overall: 2 total, 2 unique, 0.01 QPS, 0.01x concurrency ________________
# 日志记录的时间范围
# Time range: 2016-11-22 06:06:18 to 06:11:40
# 属性               总计      最小    最大    平均    95%  标准    中等
# Attribute          total     min     max     avg     95%  stddev  median
# ============     ======= ======= ======= ======= ======= ======= =======
# 语句执行时间
# Exec time             3s   640ms      2s      1s      2s   999ms      1s
# 锁占用时间
# Lock time            1ms       0     1ms   723us     1ms     1ms   723us
# 发送到客户端的行数
# Rows sent              5       1       4    2.50       4    2.12    2.50
# select语句扫描行数
# Rows examine     186.17k       0 186.17k  93.09k 186.17k 131.64k  93.09k
# 查询的字符数
# Query size           455      15     440  227.50     440  300.52  227.50

参考资料