2017-06-27 44 views
0

我有幾個表有很多索引,在設計系統的時候,所有這些表都可能有用,但是對代碼庫進一步更新可能已經變得毫無用處。獲取MySQL索引上次使用時間?

有沒有辦法讓MySQL上次使用特定索引來回答查詢?

這將節省我不必來分析我的系統發出的每一個單個查詢檢查什麼指數(ES),它可能會使用(並查明真的在生產中使用的實際數據的索引是什麼)。

+0

https://stackoverflow.com/questions/34993482/monitor-unused-indexes-in-mysql,https://stackoverflow.com/questions/3243475/how-do-you-identify-unused-indexes-in -a-mysql-database – baao

+0

@baao感謝指針,我自己沒有找到! – Benjamin

回答

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的指針。