PT-Query-Digest 分析 MySQL 慢查询日志并前端显示

发布于 16 天前  33 次阅读


提醒:本文最后更新于 2020-10-12,文中所述内容可能发生改变,请自行核实。

查询

慢查询,顾名思义就是数据库中运行比较慢的 SQL 语句,MySQL 这个功能需要开启才能用;

show variables like '%slow_query_log%';
* slow_query_log //是否开启,默认关闭,建议调优时才开启
* slow_query_log_file //慢查询日志存放目录
show variables like 'long_query_time%';
* 查看阀值(大于),默认 10s
show variables like '%log_output%';
* 查看慢查询日志记录方式
set global slow_query_log =1; //只对当前会话生效,重启失效
set global long_query_time = 1; //设置慢查询阀值
把未使用索引的 SQL 记录写入慢查询日志:
show variables like 'log_queries_not_using_indexes'; //查看设置,默认关闭
set global log_queries_not_using_indexes = on; //设置

以上设置服务重启后失效,永久开启需要修改配置文件;

vi my.cnf
在[mysqld]下添加:
slow_query_log = 1 //开启慢查询
long_query_time = 1 //设置慢查询阈值
log_output = File,TABLE //设置慢查询记录方式,File 是文件,Table 会写入 mysql.slow_log 表
slow_query_log_file = /var/lib/mysql/slow.log //设置慢查询日志位置

保存以后,重启 MySQL 服务即可。

分析

分析工具有很多,本文使用的是 Percona-Toolkit 中的 pt-query-digest 进行分析;
安装:

yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm //安装软件源
yum list | grep percona-toolkit //查询是否安装正确
yum install percona-toolkit //安装

分析:

/usr/bin/pt-query-digest

显示

从 Github 中找到几个 UI 项目,基本都是通过上述工具分析将结果写入新库,然后通过 PHP 等调用


二十多岁的年纪,希冀着时光别走…