インデックスを選択し、これらのインデックスを使用するクエリを記述では、以下の3つの原則が常に覚えておく必要があります。
-
単一行のアクセスが非常に遅いです。
特に、機械的なハードディスクストレージに(SSDのランダムI / Oははるかに速く、それはまだ保持しています)。サーバが一つだけの行を取得するためにストアからデータブロックを読み取る場合、我々は多くの作業を無駄にしました。必要に応じて、好ましくは、読み出しブロックは、複数の行を含むことができます。あなたは、効率を改善するための指標の基準位置を作成することができます。 -
データは範囲が非常に高速である順次アクセス。
理由1:シーケンシャルI / Oが複数のディスクがはるかに高速(特に機械的なハードドライブ用)、ランダムI / Oの比率を求め必要としません。
理由2:必要に応じてサーバーのデータを順次読み取ることができる場合、追加のソート操作、およびそこにGROUP BYクエリを実行する必要がなく、重合のグループによって行のソートが計算されます。 -
インデックスは、クエリが非常に高速であるカバーしています。
インデックスがクエリに必要なすべての列が含まれている場合、ストレージエンジンは、ラインを見つけるために、テーブルに戻ってくる必要はありません。これは一方向のアクセスの多くを回避できます。
全体:書き込みは、クエリは可能なはずです、見つける追加のソート操作を避けるために、可能な限り、ネイティブ配列データを使用するための単一の行を避けるために適切なインデックスを選択して、クエリをカバーするためにできる限りのインデックスを使用します。