我有几个包含许多索引的表,它们在设计系统时可能都是有用的,但是如果对代码库进行进一步的更新,它们可能会变得毫无用处。
上一次使用特定索引回答查询时,有什么方法可以问MySQL吗?
这将使我不必分析系统发出的每一个查询,以检查它可能使用的索引(还可以根据实际数据确定生产中实际使用的索引)。
发布于 2017-06-27 11:58:09
唯一可用的指标是自上次MySQL服务器重新启动以来使用了多少索引,这完全满足了我的需要。This answer in "Monitor unused indexes in MySQL"提供一个查询(MySQL 5.6+)来返回从那时起就没有使用过的索引:
SELECT object_schema, object_name, index_name
FROM performance_schema.table_io_waits_summary_by_index_usage
WHERE index_name IS NOT NULL AND count_star = 0
ORDER BY object_schema, object_name;
感谢@baao的指针。
https://stackoverflow.com/questions/44778798
复制相似问题