1

mysql データベースの (innodb) テーブルから重複したインデックスをクリーンアップしています。データベースには約 50 のテーブルがあります。

pt-duplicate-key-checkerを使用して重複キーをチェックできますが、すべてのテーブルから最近使用されていないインデックスを見つけるのに役立つツールがあるかどうか疑問に思っていました。

たとえば。、テーブル "A" に "index_1"、"index_2"、"index_3" と定義された 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 に答える