slowlog分析工具

image.png

mysqldumpslow

image.png
数据太多采样:
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时间。

image.png

记录哪些内容:

image.png
image.png
慢查询其评判标准却是实际执行时间: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

image.png

清除慢查询文件

  1. mv备份慢查询文件,mysql句柄没有释放依然写入老文件。
  2. flush slow logs 写到新的文件。