この記事では、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 サイトの他の関連記事を参照してください。