MySQL ジョイントインデックス(複合インデックス)の実装

MySQL ジョイントインデックス(複合インデックス)の実装

共同インデックス

この記事におけるジョイントインデックスの定義は次のとおりです (MySQL):

ALTER TABLE `table_name` ADD INDEX (`col1`,`col2`,`col3`);

共同インデックスの利点

SQL ステートメントが複数ある場合は、2 つの条件が必要です。

SELECT * FROM `user_info` WHERE username='XX',password='XXXXXX';

インデックスがpasswordフィールドを検索する場合、データ量が大幅に削減され、インデックス ヒット率が低下し、インデックスの効率が向上します。

マッチング インデックスのサイズは単一のインデックスのサイズよりも小さく、単なるインデックス ツリーであるため、単一の列インデックスよりも時間とスペースの複雑さが軽減されます。

ジョイントインデックスヒットの本質(左端の一致の理解)

意味

( col1col2col3 ) 結合インデックスを作成すると、( col ) 単一列インデックスを作成するのと同じになります。( clo1clo2 ) 結合インデックスと ( col1col2col3 ) 結合インデックスを有効にするには、 col1col1col2col1col2col3の 3 つの組み合わせのみ使用できます。もちろん、 col1col3の組み合わせも可能ですが、実際にはcol1のインデックスのみが使用され、 col3使用されません。

一般的な理解

ジョイント インデックスは姓氏——名字で整理された電話帳のようなものです。最初に姓を決定した場合にのみ、インデックスにヒットできます。次のステートメントは、ジョイント インデックスに正しくヒットできます ( =INの直接のフィールドはランダムな順序であってもよく、MySQL クエリ オプティマイザはそれをインデックス認識形式に最適化できます)。

-- col1、col2 のみをヒット
SELECT * FROM `table_name` WHERE `col1`='XX';
-- col1、col2 をヒットします。 col1 と col2 の順序は逆にすることができます SELECT * FROM `table_name` WHERE `clo1`='XX',`clo2`='XXX'; 
SELECT * FROM `table_name` WHERE `clo2`='XXX', `clo1`='XX';
-- col1、col2、col3 をヒットします。同様に、3 つの列の順序を逆にすることもできます。SELECT * FROM `table_name` WHERE `col1`='X',`col2`='XX',`col3`='XXX';
SELECT * FROM `table_name` WHERE `col1`='X',`col3`='XX',`col2`='XXX';
SELECT * FROM `table_name` WHERE `col2`='X',`col3`='XX',`col1`='XXX';

MySQL ジョイントインデックス (複合インデックス) の実装に関するこの記事はこれで終わりです。MySQL ジョイントインデックスに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL複合インデックスの概要
  • MySQL複合インデックスの詳細な研究
  • Mysqlの制限を最適化し、100万から1000万までの高速ページングの複合インデックスを参照し、軽量フレームワークに適用します。
  • Mysqlの制限を最適化し、100万から1000万までの高速ページングの複合インデックスを参照し、軽量フレームワークに適用します。
  • MySQL の複合インデックスはどのように機能しますか?

<<:  HTMLタグIDは変数にできる

>>:  CSS3アニメーションジャミングソリューションについての簡単な説明

推薦する

VMware で VMware ツールをインストールしてもインストール ファイルが表示されない問題を解決する方法

VMware ツールは VMware の使用に非常に便利です。そのため、VMware ツールをインス...

JavaScript の条件付きアクセス属性と矢印関数の紹介

目次1. 条件付きアクセス属性2. アロー関数の紹介1. 条件付きアクセス属性?. は ES2020...

HTML ページでギリシャ文字を使用する方法

ギリシャ文字は、特に数学や物理学などの科学技術分野で非常によく使用される記号列であり、特定の意味を持...

単一行関数と文字計算日付プロセス制御を説明する MySQL の例

目次1. キャラクター機能1. ケースコントロール機能2. キャラクターコントロール機能2. 数学関...

メモリの原則に関する詳細な説明: JS では変数はヒープに保存されるのか、スタックに保存されるのか?

目次1. 冷蔵庫に入りきらない象2. シャドウクローン文字列3. 実際に見た「奇妙なボール」 4. ...

JavaScript インタビュー: 配列の平坦化メソッドを実装する方法

目次1 配列のフラット化とは何ですか? 2 JS標準ライブラリの配列フラット化メソッド3 フラットメ...

Vueはフォーム検証機能を実装します

この記事では主に、NUXT の validate メソッドに基づいてフォーム検証を実装する方法につい...

MySQL データベース グループ クエリの group by ステートメントの詳細な説明

1: グループ化関数の記述順序 1 選択 ... 2 から ... 3 どこで ... 4 グループ...

統計量に対するmySql SQLクエリ操作

余計なことは言わないで、コードだけ見てみましょう〜 プロジェクト番号を選択、 sum(case wh...

JavaScript オブジェクト指向クラス継承ケースの説明

1. オブジェクト指向のクラス継承これまでの章では、JavaScript のオブジェクト モデルがプ...

MySql でリモート接続を許可する方法

MySql でリモート接続を許可する方法この目標を達成するには、2つのことを行う必要がある。ユーザー...

React.cloneElement の使い方の詳しい説明

目次cloneElementの役割使用シナリオ新しい小道具を追加するプロップを変更するイベントカスタ...

ウェブページを作成する際に注意すべき点

--ホームページのバックアップ1.txtテキスト2. 画像をスキャンする3. PSDデザイン原画(A...

TypeScript におけるインターフェースと型メソッドの正しい使用例

目次序文インタフェースタイプ付録: インターフェースとタイプの違い要約する序文インターフェースとタイ...

MySQL で期限切れのデータレコードを定期的に削除する簡単な方法

1. MySQL に接続してログインしたら、まず MySQL でイベント機能が有効になっているかどう...