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

WBOY
リリース: 2023-09-10 19:29:02
転載
772 人が閲覧しました

使用 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!