ホームページ  >  記事  >  データベース  >  ジョイントインデックス機能を使用した MySQL のサンプルコード共有

ジョイントインデックス機能を使用した MySQL のサンプルコード共有

黄舟
黄舟オリジナル
2017-09-14 11:13:061413ブラウズ

この記事では、MySQL ジョイント インデックスの機能と使用法を主に紹介し、ジョイント インデックスの概念、機能、具体的な使用方法、および関連する注意事項を具体的な例の形式で分析します。必要な友人はそれを参照できます

この記事の例MySQL ジョイント インデックスの機能と使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

ジョイントインデックスは複合インデックスとも呼ばれます。複合インデックスの場合: MySQL はインデックス内のフィールドを左から右に使用します。クエリではインデックスの一部のみを使用できますが、左端の部分のみが使用されます。たとえば、インデックスはキー インデックス (a,b,c) で、検索では a | a,b| a,b,c の 3 つの組み合わせをサポートしますが、一番左の場合は b,c はサポートされません。フィールドは定数参照であるため、インデックスは非常に効果的です。

2 つ以上の列のインデックスは複合インデックスと呼ばれます。

インデックスで追加の列を使用すると、検索範囲を狭めることができますが、2 つの列を持つ 1 つのインデックスを使用することは、2 つの別々のインデックスを使用することと同じではありません。複合インデックスの構造は電話帳の構造に似ており、人の名前は姓と名で構成され、電話帳は最初に姓のペアで並べ替えられ、次に同じ名前を持つ人については名で並べ替えられます。苗字。電話帳は、姓がわかっている場合には非常に便利で、姓と名の両方がわかっている場合はさらに役立ちますが、姓のみで姓がわからない場合は役に立ちません。

そのため、複合インデックスを作成するときは、列の順序を慎重に考慮する必要があります。複合インデックスは、インデックス内のすべての列を検索する場合、または最初の数列のみを検索する場合に役立ちますが、後続の列を検索する場合には役に立ちません。

例: 名前、年齢、性別の複合インデックスを作成します。


create table test(
a int,
b int,
c int,
KEY a(a,b,c)
);

 
优: select * from test where a=10 and b>50
差: select * from test where a>50

优: select * from test order by a
差: select * from test order by b
差: select * from test order by c

优: select * from test where a=10 order by a
优: select * from test where a=10 order by b
差: select * from test where a=10 order by c

优: select * from test where a>10 order by a
差: select * from test where a>10 order by b
差: select * from test where a>10 order by c

优: select * from test where a=10 and b=10 order by a
优: select * from test where a=10 and b=10 order by b
优: select * from test where a=10 and b=10 order by c

优: select * from test where a=10 and b=10 order by a
优: select * from test where a=10 and b>10 order by b
差: select * from test where a=10 and b>10 order by c

インデックスの原則

1. インデックスは少ないほど良い

理由: 主にデータを変更する場合、最初のインデックスを更新する必要があるため、書き込み速度が低下します。

2. キーの左側に最も狭いフィールドを配置します。

3. ファイルの並べ替え、一時テーブル、テーブル スキャンを避けます。

以上がジョイントインデックス機能を使用した MySQL のサンプルコード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。