slowlog分析工具
mysqldumpslow
数据太多采样:
tail -n 100000 slow.log > analytics.log
mysqldumpslow analytics.log
show status like
查询慢查询个数
—查看查询时间超过long_query_time秒的查询的个数。
show status like ‘slow_queries’;
查看数据库的主要操作时select还是insert
—查看select语句的执行数
show [global] status like ‘com_select’;
—查看insert语句的执行数
show [global] status like ‘com_insert’;
—查看update语句的执行数
show [global] status like ‘com_update’;
—查看delete语句的执行数
show [global] status like ‘com_delete’;
—查看MySQL本次启动后的运行时间(单位:秒)
show status like ‘uptime’;
—查看select语句的执行数
show [global] status like ‘com_select’;
—查看insert语句的执行数
show [global] status like ‘com_insert’;
—查看update语句的执行数
show [global] status like ‘com_update’;
—查看delete语句的执行数
show [global] status like ‘com_delete’;
—查看试图连接到MySQL(不管是否连接成功)的连接数
show status like ‘connections’;
—查看线程缓存内的线程的数量。
show status like ‘threads_cached’;
—查看当前打开的连接的数量。
show status like ‘threads_connected’;
—查看当前打开的连接的数量。
show status like ‘threads_connected’;
—查看创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。
show status like ‘threads_created’;
—查看激活的(非睡眠状态)线程数。
show status like ‘threads_running’;
—查看立即获得的表的锁的次数。
show status like ‘table_locks_immediate’;
—查看不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。
show status like ‘table_locks_waited’;
—查看创建时间超过slow_launch_time秒的线程数。
show status like ‘slow_launch_threads’;
查看临时文件数
using filesort & using temporary
慢查询日志
慢查询配置
阻塞语句不会记录到慢查询日志
- slow_query_log:默认 机器名-slow.log
- long_query_time:默认10s,超过则为慢查询
- min_examined_row_limit:sql扫描超过xx行才被记录(可屏蔽sleep语句)
- [5.7] log_timestamps = system:设置log系统时间,默认utc时间。
记录哪些内容:
慢查询其评判标准却是实际执行时间:Query_time - Lock_time(不记录长时间等待锁的sql)
记录到哪
log_output:
mysqldumpslow -s at -t 10 dev_121_21-slow.log
- 平均锁定时间最长的前10条SQL
mysqldumpslow -s al -t 10 dev_121_21-slow.log
- 执行次数最多的前10条SQL
mysqldumpslow -s c -t 10 dev_121_21-slow.log
- 显示SQL的具体值,而不是由N代替。便于查看执行计划并优化
mysqldumpslow -a slow.log
- 显示所有occ_sys表相关的慢SQL的具体值
mysqldumpslow -a -g ‘occ_sys’ dev_121_21-slow.log
mysqldumpslow使用说明 分析慢日志 - Liang Log
pt-query-digest 分析慢查询日志
技术分享 | 使用 pt-query-digest 分析慢日志
- pt-mysql-summary —user=root —ipassword=123456
查看mysql统计信息,包含innodb信息。
- pt-query-digest /var/lib/mysql/xxxx-slow.log
分析慢查询日志
实时慢查询:information_schema.PROCESSLIST
清除慢查询文件
- mv备份慢查询文件,mysql句柄没有释放依然写入老文件。
- flush slow logs 写到新的文件。