文字索引チューニング
導入
メールボックスアカウントとして使用されるシステムを持っている場合は、あなたが与えた場合、あなたは、その後、メールボックスにインデックスを付けていない場合は、各着陸は、メールボックスをチェックし、それぞれの時間は、クエリは、テーブル全体のクエリで、必要とされるメールボックスのインデックスに追加しますが、 Eメールプラスの言葉の一般的な指標とスペースの無駄を感じます
プリフィックス索引
インデックスを追加
普通索引
alter table SUser add index index1(email);
前缀6的索引
alter table SUser add index index2(email(6));
インデックスの構造
検索の違い
select id,email from SUser where email='[email protected]'
index1のを使用してください
このレコードを[email protected]見つけるためにインデックスツリーindex1の1.ダイレクト検索
2.次に、条件が満たされた場合、直接、結果セット(カバー率)を返し、次のレコードをチェック
INDEX2を使用してください
1.直接検索ツリーINDEX2指数、およびこのレコードのzhangsを見つけます
2.バック満たしているテーブルにメールボックスをチェック
3.次のレコードに進みます
注意を払います
被覆インデックスを使用することはできませんプリフィックス索引を使用します
接頭辞の概要インデックス
1.あなたは、インデックスのストレージスペースを節約することができ、およびクエリのコストに多くを追加しません(前提、すでにテーブルに戻ってそこに動作し、かつ適切なインデックスのプレフィックス長を設定します)
2.カバレッジ指標を最適化するために使用することができません
合理的なインデックスの接頭辞を設定する方法
1.プリフィックス索引の長さ
ケースを通して、私たちは、不当な余分なプレフィックス長が設定されている場合は、インデックスの多くの追加のクエリを増加知ります
select count(distinct email) as L from SUser;
select count(distinct left(email,4))as L4, count(distinct left(email,5))as L5, count(distinct left(email,6))as L6, count(distinct left(email,7))as L7,from SUser;
95パーセントの上限の率を繰り返さないように、上記のステートメントは、短いよりよいプレフィックスをプレフィックス繰り返しレートを照会することができます
2.リバース
のは、ID番号は、最初のいくつかの州がエンコードされ、繰り返しが多いですが、それは無秩序最後の数である、我々は後方に保存することができましょう、あなたがより効果的にできるように、
文字列のハッシュ値のユニークなアルゴリズムの計算3。
新しいフィールドを追加する必要がありますが、そこに反復することができるが、短いインデックスの長さ
概要
あなたはインデックスの文字を使用する必要がある場合は、あなたのアカウントに多くのものを取る必要があり、データの量を言う、データが少ない、それは、最適化された信頼性と安全性、そしてシンプルされていません
参考リンク
https://time.geekbang.org/column/article/71492