MySQL慢查询日志分析工具
1 mysqldumpslow
如查询前10条慢sql
mysqldumpslow -t 10 /usr/local/mysql/data/192-slow.log
select sleep(N)语句共执行了2次,共花费了22s,平均11s,锁表时间0.00s,共返回行rows=2,平均1行。该工具是MySQL自带,但是信息量较少,而pt-query-digest更多。
2 pt-query-digest
2.1 安装
由于这玩意本质上是个Perl脚本,得安装Perl环境,然后再安装pt-query-digest(安装过程略)
2.2 使用
2.2.1 查看服务器信息,如系统日期,主机,更新时间,内核,平台,进程数等
pt-summary
2.2.2 查看磁盘开销使用信息,如磁盘使用率,繁忙度等信息。
pt-diskstats
2.2.3 查看mysql数据库信息,如系统时间,数据库实例,MySQL服务路径,主从信息等
pt-mysql-summary --user=root --password=123456
2.2.4 查找mysql的从库和同步状态
pt-slave-find --host=localhost --user=root --password=123456
2.2.5 查看MySQL的死锁信息
pt-deadlock-logger --run-time=10 --interval=3 --create-dest-table --dest D=test,t=deadlocks u=root,p=123456
2.2.6 从慢查询日志中分析索引使用情况
pt-index-usage --user=root --password=123456 --host=localhost /usr/local/mysql/data/192-slow.log
2.2.7 从慢查找数据库表中重复的索引
pt-duplicate-key-checker --host=localhost --user=root --password=123456
2.2.8 查看mysql表和文件的当前活动IO开销
pt-ioprofile
2.2.9 比较不同MySQL配置文件的差异
pt-config-diff my-a.cnf my-b.cnf
2.2.10 pt-find查找mysql表和执行命令,如查大于1M的表
pt-find --user=root --password=123456 --tablesize +1M
2.2.11 慢查询日志分析
pt-query-digest /usr/local/mysql/data/192-slow.log
如图,有执行总时间,最小时间,最大时间,平均时间,达到95%的时间是多少,标准时间,中位时间等信息用于判断慢SQL。