1

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

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

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

有没有好的方法或工具可以帮助我在数据库上运行这个分析?

提前致谢。

4

1 回答 1

1

从 MySQL 5.6 开始,performance_schema 检测表 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

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

性能模式度量是根据索引计算 io,因此它可以用来找到最不常用的索引,实际上应该非常接近。

完整的例子在这里:

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

注意:这个问题在

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

于 2012-10-04T07:51:56.403 回答