获取MySQL索引的最后使用时间?

时间:2017-06-27 11:09:42

标签: mysql indexing

我有一些包含许多索引的表,在设计系统时可能在某些时候都很有用,但是对代码库的进一步更新可能已经变得无用。

有没有办法在上次使用特定索引回答查询时询问MySQL?

这将使我不必分析我的系统发出的每个查询,以检查它可能使用的索引(并且还可以确定实际数据中生产中使用的真正的索引) )。

1 个答案:

答案 0 :(得分:0)

唯一可用的指标是自上次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指针。