左端のマッチング原則(百度)の関節指数でのMySQL

あなたは共同インデックスのカラム選択の原則を作成するとき

  1. コラム-頻繁に使用される(左端の費用収益対応の原則)
  2. 列の個別優先度の高い(離散高い原則)
  3. 列-小さな幅(最小空間的原則) 

最も優先度の左のMysql原則左端の接頭辞、マルチ列インデックス(関節インデックス)を確立します。
我々は共同インデックス(COL1、COL2)2を確立することであれば、実際には、2つのジョイントインデックス(COL1)、(COL1、COL2を確立しています 。)
3指数(COL1、COL2、COL3)がある場合、実際、既に確立された3つの関節指数(COL1)、(COL1、COL2 )、(COL1、COL2、COL3)。

説明

1、B +ツリーデータ項目は、(チャン、20、F)のように、探索木を確立するために、左から右に(名前、年齢、性別)と、B +ツリーなどの複合データ構造でありますそのようなデータを取得するときに順番に同じ名前と年齢性別比較は、最終的に得られたデータを取得すれば、B +ツリー名優先度比較は、次の探索方向を決定していない;しかし、(20、F)は、そのような名前データが来た探索木の​​名を確立するための時間は、第1の比較要因であるため、調査の最初のステップを知らない、B +ツリーのノードには、最初に次に行くために知っておくために、検索クエリに応じて名前を付ける必要があります。

図2に示すように、このデータを取得するために、そのような(チャン、F)として、B +ツリー名は、検索方向を指定するために使用することができるが、年齢次のフィールドの欠如は、これだけ名前は、その後、検出されたデータの座席に等しいです。セックスは、これは非常に重要な特性、すなわち、最も左のインデックスのマッチング特性である、データのFの試合です。(この状況は、関節のインデックスを使用することはできません)

MySQLで意義の共同インデックスを作成します

トップ3の一つ

構築された(A、B、C)複合インデックスの、(A)、(B)、(A、B、C)の実際の構築3つのインデックスに等しく、それぞれ複数のインデックスは、書き込み動作を増加するためオーバーヘッドオーバーヘッドとディスクスペース。データテーブルの大量のために、これは小さなオーバーヘッドではありません!

インデックスをカバー

同じ複合インデックス(a、b、c)は、以下のSQLであれば:= 1、B = 1のテーブルから、B、Cを選択します。次いで、MySQLはランダムIO操作の数を減らすテーブルに戻る必要なしに、インデックスデータをトラバースすることによって直接得ることができます。オペレーティングIOを削減し、特定のランダムな事実をioをメイン最適化戦略のdbaです。だから、本当の実用的なアプリケーションで、インデックスをカバーすることは最適化されたパフォーマンス改善の主な手段の一つであります

インデックス列、少ないインデックスデータによりスクリーニングし、より

データの存在1000Wテーブル、次のSQL:テーブルから選択* 、= 1およびb = 2およびc = 3の各条件は、によって選択されたデータの10%、もし単一の値インデックス、と仮定することができると仮定するとインデックスは1000Wスクリーニングすることができるが、複合インデックスである場合、インデックスは千ワットで選択された、データの100ワットから、B = 2、C = 3が見つかり、その後ソート、ページングデータの10 = 100ワットの%を、そしてデータテーブルを返します  10%  、10% 、10%= 1W、より効率的であり、ソート、ページング、一目

 

カウント(異なるCOL)/数:離散列コンピューティング (COL)の
例:
ID列が9 9/9 = 1の合計繰り返さない
性別カラム9(男性または女性)の唯一の合計が2 2/9 0.2にほぼ等しいです。
より大きな、より高い選択性ディスクリート

 

おすすめ

転載: www.cnblogs.com/aspirant/p/11404174.html