ディレクトリ
指数
1.インデックスとは何ですか
これは、鍵データとの対応関係の詳細の位置情報を格納する特定のデータ構造の指標です。
2.なぜあなたは、インデックスが必要なのです
データの量が非常に大きい場合、1件のクエリデータが非常に遅いので、私たちはクエリをスピードアップするためにインデックスを使用することができます
インデックスの3インパクト
- インデックスがスピードアップすることができましたことを言っていない、インデックスを使用し、正しくクエリを見てする必要はありません
- インデックスはまた、余分なデータスペースを取る必要があります
- 遅い削除する修正案の変化にインデックスリードを追加した後
私たちはあまり書き込みインデックスを使用する場合よりクエリ操作は、インデックスの原則は、常にデータへのアクセスの範囲を狭めるたいことで、検索範囲を減らすために可能な限り、あなたが望む最終結果をフィルタリングすることが本質的である場合には
4.ディスクIO
ディスクは、データを読み取り、ディスクIO時間は約5 + 4.17 =とて9msにほぼ等しい、ディスクIOは非常に高価な操作であり、いくつかの最適化を行うには、コンピュータのオペレーティングシステム、ときに一度IO、データだけではなく、現在のディスクアドレスが、地元の先読みの原理は、コンピュータがデータアドレスにアクセスする際に、データに隣接したが、すぐにアクセスされることを教えてくれるので、隣接するデータも、メモリバッファに読み込まれます。
インデックスデータ構造
B +ツリー
B +ツリーのリーフノードは、実データに格納され、葉の数より、ツリーのレベルが高いほど、葉ノードに可能な限り多くのデータを格納する、この問題を回避するためにIOの数を増加させるには、あるべきですインデックスフィールドなど、少量のデータ
データ項目は、化合物B +ツリーデータ構造である場合、数b +は左端のインデックスが一致する特性を有する、探索木を確立するために左から右へです。
6.クラスタ化インデックスセカンダリインデックス
データベースB +ツリーインデックスは、クラスタ化インデックス(クラスタ化インデックス)とセカンダリインデックス(二次索引)に分けることができます
その後、クラスタ化インデックスとしてフィールドを見つけられない場合は、空でないと、クラスタ化インデックスとしてフィールドだけを探して、自動的に生成されていない場合、主キーの提案開発は、主キーがクラスタ化インデックスは、ある場合にクラスタ化インデックスは、すべてのフィールドの値が含まれています
クラスタ化インデックスを格納し、すべてのデータ
加えて、テーブルインデックスがクラスタ化されているインデックス他の二次インデックスは、インデックスは主キーインデックスフィールドのみ二次電流値を含み、かつ
これは、クエリをカバー:現在のインデックス構造内のすべてのデータを検索する必要を意味し、クラスタ化インデックスは、次に照会する場合、それはクエリをカバーしなければならない、最速であります
バックテーブル、クエリに:必要なデータを参照するには、クラスタ化インデックスよりも遅く、現在のインデックス構造、見つかった主キーのインデックスの値によって、クラスタ化インデックスクエリに行く必要がある、で見つけることができません
7、結論
1.指標として最小のフットプリントフィールド
2.は、小説、ビデオ、あまりにも多くのフィールドを分けることができるならば、テーブルなどの行でも多くのデータを、保存しないでください
3.クエリをカバー使用してみてください
フィールドが低い(高繰返し)の場合がある4.場合は、インデックスは、他の一方で、インデックスフィールドとして高く区別する必要があり、意味がありません。
5.ファジーマッチング、EDITORIALないパーセント記号を試してみてください
6.算術演算を行うために左に同一視しないでください
たとえば:SELECT COUNT()ID USRから。3 = 6は、すべてのレコードを横断します
7.and文が自動的に最初のコンパクト版でフィールドを見つけるだろう、それは、少なくとも私たちはフィールドでのインデックスと文を持っている含まれている必要があります
あなたはすべてのフィールドが加速していることを確認するために、インデックスを使用している場合8.or文は、避けるべきです
9.共同インデックス、順序が最高の区別、適切な場所で最低の左側に配置する必要があり、
クエリは、左端のインデックスは声明の中で表示されていることを確認する必要があります
また、注意してください:非常に大規模なインデックスを照会されるデータの量が加速することができない場合
概要:代わりに、インデックスは、インデックスが合理的である追加を検討し、高速化することができるようになります追加するのは、SQL文が索引を使用することです
8.文法のインデックスを作成します。
テーブル名(フィールド名)に、インデックスインデックス名を作成します
共同インデックス
テーブル名にインデックスインデックス名を作成します(フィールド名、フィールド名)
USR(ID、電子メール、名前、性別)にインデックスを作成するunion_index。
インデックスを削除します。
テーブル名にインデックスインデックス名をドロップします。