MySQL 运维工具 percona-toolkit 的使用
percona-toolkit 是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等。
官网:https://www.percona.com/software/database-tools/percona-toolkit
安装 percona-toolkit
仓库安装
Debian
$ apt-cache search percona-toolkit percona-toolkit - Advanced MySQL and system command-line tools $ sudo apt-get install percona-toolkit
下载安装
访问 下载地址,根据系统版本选择对应的版本进行下载。
Debian
sudo dpkg -i percona-toolkit_3.2.1-1.buster_amd64.deb
pt-query-digest
pt-query-digest 主要用来分析 mysql 的慢日志,并格式化输出以便于查看和分析。
报告分析
- 总体统计结果
- Overall:总共有多少条查询
- Time range:查询执行的时间范围
- unique:唯一查询数量,即对查询条件进行参数化以后,总共有多少个不同的查询
- total:总计
- min:最小
- max:最大
- avg:平均 95%:把所有值从小到大排列,位置位于 95% 的那个数,这个数一般最具有参考价值
- median:中位数,把所有值从小到大排列,位置位于中间那个数
- 查询分组统计结果
- Rank:所有语句的排名,默认按查询时间降序排列,通过 --order-by 指定
- Query ID:语句的 ID,(去掉多余空格和文本字符,计算 hash 值)
- Response:总的响应时间
- time:该查询在本次分析中总的时间占比
- calls:执行次数,即本次分析总共有多少条这种类型的查询语句
- R/Call:平均每次执行的响应时间
- V/M:响应时间 Variance-to-mean 的比率
- Item:查询对象
- 每一种查询的详细统计结果
- ID:查询的 ID 号,和上图的 Query ID 对应
- Databases:数据库名
- Users:各个用户执行的次数(占比)
- Query_time distribution :查询时间分布,长短体现区间占比。
- Tables:查询中涉及到的表
- Explain:SQL 语句。
使用示例
直接分析慢查询文件:
$ pt-query-digest mysql-bin.288298.log > report1.log
解析 MySQL 的 Binlog 日志:
$ mysqlbinlog mysql-bin88.0001 > mysql-bin88.0001.sql $ pt-query-digest mysql-bin.288298.log > report1.log
参考资料
- https://www.cnblogs.com/javastack/p/12606106.html
相关文章