我正在清理mysql数据库中(Innodb)表中的重复索引。数据库大约有50个表。
虽然我可以使用pt-duplicate-key-checker检查重复的键,但我想知道是否有一个工具可以帮助我从所有表中找出最近最少使用的索引。
例如。,如果表"A“有定义为"index_1”、"index_2“和"index_3”的三个索引,并且其中"index_3“的使用频率最低,假设对表进行的每10000次查询都会使用它,则脚本或工具的输出应该是"index_3”。
有没有好的方法或工具可以帮助我在数据库上运行这个分析?
提前谢谢。
发布于 2012-10-04 15:51:56
从MySQL 5.6开始,performance_schema插入表io,并通过表和索引计算聚集的统计信息。
请参阅表performance_schema.table_io_waits_summary_by_index_usage:
查找最近最少使用的索引涉及时间和时间戳。
性能模式的衡量标准是将io与索引进行计数,因此可以使用它来查找最不常用的索引,而在实践中,该索引应该非常接近。
完整示例如下:
http://sqlfiddle.com/#!9/c129c/4
注意:这个问题也在
https://dba.stackexchange.com/questions/25406/find-least-recently-used-mysql-table-index
https://stackoverflow.com/questions/12720960
复制相似问题