外部キーのインデックスと、それらの外部キーを含むクラスター化インデックスを持つ多くのテーブルがあります。たとえば、次のようなテーブルがあります。
TABLE: Item
------------------------
id PRIMARY KEY
owner FOREIGN KEY
status
... many more columns
MySQL は主キーと外部キーのインデックスを生成しますが、クエリのパフォーマンスを向上させたい場合があるため、クラスター化インデックスまたはカバリング インデックスを作成します。これにより、列が重複するインデックスが作成されます。
INDEXES ON: Item
------------------------
idx_owner (owner)
idx_owner_status (owner, status)
を削除した場合idx_owner
、通常使用する将来のクエリは、インデックスの最初の列として使用するidx_owner
だけです。idx_owner_status
owner
持ち歩く価値はありidx_owner
ますか?idx_owner_status
MySQL がインデックスの一部しか使用しない場合でも、使用する追加の I/O オーバーヘッドはありますか?
編集:私は本当にInnoDBがインデックスに関してどのように動作するかにのみ興味があります。