percona-toolkit中pt-index-usage的实现原理:
pt-index-usage先要根据日志分析查询,然后连接MySQL数据库,通过explain来检查查询所生成的访问路径。而且他默认只能按照"慢日志"的方式读取文件。
该工具运行分为两个阶段:
第一阶段,该工具将对数据库中的所有表和索引进行清点,以便将现有索引与日志中查询实际使用的索引进行比较。
第二阶段,它在查询日志中的每个查询上运行EXPLAIN。它使用单独的数据库连接来清点表并运行EXPLAIN,因此它每次都要打开两个连接。如果操作是update等非select操 作,会自动转化为等价的select操作。
语法:
pt-index-usage [OPTIONS] [FIILE]
打印报告:
pt-index-usage mysql-slow.log --host localhost
将报告写入到一个数据库的表当中:
pt-index-usage mysql-slow.log --no-report --save-results-database dbname
语句:
pt-index-usage mysql-slowlog.log --host=127.0.0.1 --port=3306 --user=root --password=123456