MySQL組索引が効く条件
MySQLの複合インデックスは、以下の方法で有効になる可能性があります。
- クエリ文の条件は、結合インデックスの左端の列と一致するようにする必要があります。結合インデックスの左端の列はインデックスの主導列であり、インデックスが機能するにはクエリ文の条件が主導列と一致する必要があります。
- 複合インデックスの全ての列に検索条件が使用されていることを確認する。複合インデックスは複数の列から構成されているため、検索条件に複合インデックスの全ての列が使用されている場合にのみインデックスが有効になる。
- 結合インデックスの列に関数や演算を実施しないようにしてください。そうしないと、MySQL はクエリ最適化にそのインデックスを使用することができません。
- 組み込みインデックスは長くし過ぎないこと。組み込みインデックスの長さはMySQLの規定する最大のインデックス長を超えると、インデックスは無効になる。
- クエリ文を、条件が複合インデックスの順序に合うように並べ替えます。条件と複合インデックスの順序が一致しないと、MySQLはクエリを最適化するためにそのインデックスを使用できなくなります。
複合インデックスが必ずしもクエリ性能向上に結びつくわけではない点に注意してください。具体的なデータとクエリシナリオに基づいてクエリ性能向上を評価する必要があります。