查找最近最少使用的mysql表索引

时间:2012-10-04 05:44:42

标签: mysql database database-tuning

我正在清理mysql数据库中(innodb)表的重复索引。该数据库有大约50个表。

虽然我可以使用pt-duplicate-key-checker检查重复密钥,但我想知道是否有一个工具可以帮助我找出所有表中最近最少使用的索引。

例如。 ,如果表“A”有三个索引定义为“index_1”,“index_2”和“index_3”,并且其中“index_3”的使用频率最低,则假设其使用的每个1/10000查询在表上进行,然后输出脚本或工具应该是“index_3”。

是否有一种好方法或工具可以帮助我在数据库上运行此分析?

提前致谢。

1 个答案:

答案 0 :(得分:1)

从MySQL 5.6开始,performance_schema instruments表io,并按表和索引计算聚合统计数据。

见表performance_schema.table_io_waits_summary_by_index_usage:

http://dev.mysql.com/doc/refman/5.6/en/table-waits-summary-tables.html#table-io-waits-summary-by-index-usage-table

查找最近最近使用的索引涉及时间和时间戳。

性能模式度量是针对索引计算的,因此它可用于查找最少经常使用的索引,实际上应该非常接近。

这里有完整的例子:

http://sqlfiddle.com/#!9/c129c/4

注意:此问题也在

中重复

https://dba.stackexchange.com/questions/25406/find-least-recently-used-mysql-table-index