参考1
参考2
最高の左接頭辞ルール:死ぬことができないビッグブラザーに率先して、真ん中の兄は分割できない
-最高の左接頭辞ルールインデックスのルールを
ベスト左接頭辞ルール学習とデモデモ
1のデータを準備します
表1.1ビルドでは、
コードをコピー
DROP TABLE IFは、スタッフをEXISTS。
CREATE TABLE IF NOTスタッフ(EXISTS
ID INT PRIMARY KEYのAUTO_INCREMENT、
名前VARCHAR(50)、
年齢INT、
POS VARCHAR(50)COMMENT '职位'、
給与DECIMAL(10,2)を
);
コードをコピー
挿入データ1.2
INSERT INTOスタッフ(名前、年齢、POS、給与)VALUES( 'アリス'、22 'HR'、5000);
INSERT INTOスタッフ(名前、年齢、POS、給与)VALUES( 'ボブ'、22 'RD'、10000);
INSERT INTOスタッフ(名前、年齢、POS、給与)VALUES( 'デビッド'、22 '販売'、120000);
2テスト&分析を説明
2.1インデックスの作成
INDEX idx_nameAgePos ONのスタッフ(名前、年齢、POS)を作成します。
インデックス名、年齢、POS三つのフィールドに基づいて作成されました
2.2インデックスのテスト
ケース#1:のみのクエリに名前フィールドに基づいて、
SELECT *をEXPLAINスタッフからのWHERE名= 'アリス';
結果:
type=ref
key=索引
ref=const
ken_len=53
ケース#2:名前&年齢フィールドに基づいてのみクエリ
SELECT *をEXPLAINスタッフからのWHERE名= 'アリス' AND年齢= 22;
結果:ケース#1とほとんど、しかし:
key_len=58
ref=const, const
ケース#3:よる名前&年齢&POS問い合わせへ
スタッフからのSELECT *をEXPLAIN WHERE名= 'アリス' AND年齢= 22とPOS = 'HR';
結果:インデックスがより豊かでケース#2の結果よりkey_lenに参考文献、同時に、力にまだあります
ケース#4:問い合わせに年齢&POSに従って
EXPLAIN SELECT * FROMスタッフ年齢= 22とPOS = 'HR';
結果:なしインデックス、全表スキャンを
ケース#5:名前&POSを照会するためによると
EXPLAIN SELECT * FROM社員名= 'アリス' AND POS = 'HR';
結果:ケース#1と同じ(インデックスフィールド説明POSへのアクセスなし)
3つの総合的な分析
Case1,2,3は、最高の左接頭辞ルールをインデックスと長さを順次増加する(key_lenに= 53,58,111及びREF = 1番目CONST、2番目CONST、3番目CONST)を使用して、インデックスに使用されます。
ケース4のリードではない弟(モスクワ)、その後、全表スキャン。
インデックス、中央兄弟(中間コンパートメント)のCASE5フィールド用途のみ名年齢オフ、次いで、POSに連結された後者の兄弟(キャビン)。
4まとめ
ベスト左接頭辞ルール:死ぬことができないビッグブラザーに率先して、真ん中の兄は分割できません