MySQLコンポジットインデックス
複合インデックスは、複数の列で使用されるインデックスです。複数列のインデックスとも呼ばれます。
機能
機能を見てみましょう-
-
MySQLを使用すると、ユーザーは最大16列で構成できる複合インデックスを作成できます。
-
クエリオプティマイザは、インデックス内のすべての列をテストするクエリに複合インデックスを使用します。
-
また、最初の列、最初の2列などをテストするクエリにも使用できます。
-
インデックス定義で列が正しい順序で指定されている場合、同じテーブルで特定の種類のクエリを高速化する単一の複合インデックスを使用できます。
複合インデックスの作成
テーブルの作成中に、複合インデックスを作成する方法を見てみましょう。以下のステートメントを使用して実行できます-
CREATE TABLE table_name ( c1 data_type PRIMARY KEY, c2 data_type, c3 data_type, c4 data_type, INDEX index_name (c2,c3,c4) );
上記のステートメントでは、複合インデックスは3つの列c2、c3、およびc4で構成されています。
複合インデックスは、「CREATEINDEX」ステートメントを使用して既存のテーブルに追加することもできます。これがどのように行われるか見てみましょう
クエリ
CREATE INDEX index_name ON table_name(c2,c3,c4);
(c1、c2、c3)に複合インデックスがある場合、ユーザーは以下に示す列の組み合わせの1つで検索機能にインデックスを付けることになります-
(c1) (c1,c2) (c1,c2,c3)
-
MySQL(複合キー)で重複する行を見つけますか?
重複する行を見つけるには、MySQLでGROUPBYとHAVINGを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1494 -> ( -> ShippingDate datetime, -> CustomerCountryName varchar(20) -> ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します
-
MySQLの複合インデックスを使用して低速クエリを高速化
最初にコンポジットインデックスとは何かを見てみましょう- 複合インデックスは、複数の列で使用されるインデックスです。 複数列のインデックスとも呼ばれます。 MySQLを使用すると、ユーザーは最大16列で構成できる複合インデックスを作成できます。 クエリオプティマイザは、インデックス内のすべての列をテストするクエリに複合インデックスを使用します。 また、最初の列、最初の2列などをテストするクエリにも使用できます。 インデックス定義で列が正しい順序で指定されている場合、同じテーブルで特定の種類のクエリを高速化する単一の複合インデックスを使用できます。 テー