MySQL結合インデックスの使い方
MySQLの複合インデックスとは、1つのテーブルで複数の列を同時にインデックス化するもので、クエリ効率を向上させます。利用方法は次のとおりです。
- ユニークインデックスを作成する:
- ALTER TABLE テーブル名 ADD INDEX インデックス名 (カラム1, カラム2, カラム3, …);
- ネイティブな日本語で言い換えると、次のようになります。
- ALTER TABLE student ADD INDEX idx_name_age (名前, 年齢);
- 結合インデックスを利用して問い合わせる:
- 1行目に述べた条件を満たす行をすべて取得するSQL文です。
- 例えば
- ‘John’という名前、年齢が20歳の生徒を出力
複合インデックス使用時の注意点
- 複合インデックスの順番は大変重要です、MySQLはインデックスの順番で検索を実行するため、実際の実行状況に応じて適切な順番を選択する必要があります。
- 複合インデックスを使用するには、インデックスの列順がクエリの列順と一致している必要があります。
- 索引を結合する列は、頻繁に検索される列であるべきです。そうでなければ、冗長な索引となり、性能が低下します。
- 複合インデックスを使用する場合、照会でその一部の列のみを使用する必要がある場合は、照会対象の列のみをインデックスに含め、その他の列は含まない被覆インデックスを使用できます。これにより照会効率をさらに向上できます。