pt-index-usage能够从日志当中分析索引的使用情况,并且生成一个报表。下面看一下基本的语法:
pt-index-usage [OPTIONS] [FIILE]
打印报告:
pt-index-usage /path/to/slow.log --host localhost
将报告写入到一个数据库的表当中,存入以后方便我们的查阅,而且会自己定义一些查询:
pt-index-usage slow.log --no-report --save-results-database percona
下面我们看一下pt-index-usage的实现原理:
pt-index-usage先要根据日志分析查询,然后链接MySQL数据库,通过explain来检查查询所生成的访问路径。而且他默认只能按照慢日志的方式读取文件,该工具运行分为两个阶段。在第一阶段,该工具将对数据库中的所有表和索引进行清点,以便将现有索引与日志中查询实际使用的索引进行比较。在第二阶段,它在查询日志中的每个查询上运行EXPLAIN。它使用单独的数据库连接来清点表并运行EXPLAIN,因此它每次都要打开两个连接。如果操作是update等非select操作,会自动转化为等价的select操作。
[[email protected] bin]# ./pt-index-usage /home/mysql/db3306/log/slowlog_343306.log --host=172.16.16.35 --port=3306 --user=root --password=123456
时间: 2024-10-12 15:21:38