ホームページ  >  記事  >  データベース  >  MySQL の複合インデックスを使用して遅いクエリを高速化する

MySQL の複合インデックスを使用して遅いクエリを高速化する

WBOY
WBOY転載
2023-09-10 19:29:02765ブラウズ

使用 MySQL 中的复合索引使慢速查询变得更快

#まず複合インデックスとは何かを見てみましょう -

  • 複合インデックスは、複数の列で使用されるインデックスです。 。

  • 複数列インデックスとも呼ばれます。

  • MySQL では、ユーザーは最大 16 列を含めることができる複合インデックスを作成できます。

  • クエリ オプティマイザーはクエリに複合インデックスを使用し、インデックス内のすべての列をテストします。

  • 最初の列、最初の 2 列などのクエリをテストするために使用することもできます。

  • インデックス定義で列を正しい順序で指定すると、単一の複合インデックスを使用して、同じテーブルに対する特定の種類のクエリを高速化できます。

複合インデックスを作成するプロセスで、複合インデックス テーブルを作成する方法を見てみましょう。これは、次のステートメントを使用して実行できます。 -

Query

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 で構成されています。

「CREATE INDEX」ステートメントを使用して、複合インデックスを既存のテーブルに追加することもできます。これを行う方法を見てみましょう -

Query

CREATE INDEX index_name
ON table_name(c2,c3,c4);

複合インデックスを使用して sloq クエリをすばやく実行する方法を見てみましょう -

  • Query 実行速度その期間によって異なります。

  • インデックス ヒントを使用すると、クエリの速度が向上します。

  • MySQL オプティマイザーを使用すると、インデックスを選択するときに適切な決定を下すことができます。

  • ただし、これは静的クエリでのみ実行できます。

  • 「WHERE」句が変更されるクエリを追加すると、オプティマイザがその仕事を実行できなくなるため、クエリのパフォーマンスが低下します。

  • 「FORCE INDEX」ステートメントは「USE INDEX (index_list)」と同様に機能します。また、テーブル スキャンは高コストのタスクとみなされます。

  • #テーブル スキャンは、名前付きインデックスを使用してテーブル内の行を検索できない場合にのみ必要です。

以上がMySQL の複合インデックスを使用して遅いクエリを高速化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。