MySQLデータベース

インデックスディスクは、ディスクアドレス問合せの値か否かに応じて、一つ一つを決定する、無インデックス場合、データ構造、インデックスフィールドに対応する単一の値のディスク領域、及びこの値の記録ディスクに対応するアドレスデータの上に配置されています同じ値が、スペースの後にインデックス値を直接取得したインデックスもディスクアドレスを対応するこのレコードを見つけることができるようになりますがあります。

主キーのインデックスとインデックスの唯一の違いは、主キーのインデックスはNULLにすることはできませんで、一意のインデックスはNULL値を持つことができます。

バイナリ検索データ、中間値フィルタから開始し、すべての半分の値を選別することができます。左のサブツリーは、親ノードよりも小さい場合、右の子ノードは、親の数より多いです

平衡二分木(ABLTree):約サブツリーの深さの差が1以下であってはなりません

左と右のサブツリーによってだけ左または右ノードnode、右利きまたは左利き平衡二分木であってもよい順序番号に挿入されたときの深さに差がない以上1

平衡二分木、各ノードの記憶:インデックスフィールドの値は、ディスクが記録、左サブツリー基準点アドレス、右サブツリーの基準ノードに対処すべきです

InnoDBの各操作は、ディスクページの16キロバイトの最小単位である、データがディスクからメモリにロードされ、データの周りのデフォルトのデータは、それがメモリにロードされ、局所性の原則をアクセスされます。各ディスクブロックストレージノードはほとんどアドレッシング多くの時間を無駄にしない場合、アクセスノードは、ディスクIO、16キロバイト= 16384バイトのための各ノードプレースホルダです。深さ数深すぎます

B番号、使用分割及びマージマルチチャンネルバランス探索木と呼ばれる平衡Bツリーを、確保、子ノードの数が度を求めている、キーワードの数はN、N + 1の次数であり、各ノードは、ページで、そのページマージとスプリット

マルチチャンネルバランス探索木のバージョンを強化B +ツリーを使用してインデックスのストレージ構造は、子ノードの数が度と呼ばれている、キーワードの数をN、次数Nである、唯一のリーフノードにのみに対応した完全なインデックスデータを保存しますディスクアドレスレコード。すべてのデータがリーフノードに配置され、IOの数は、すべてのデータを検索、深度データは、IO効率の安定性を確保するために、各隣接するリーフノードと同じであり、リーフノードは、隣接へのポインタのポインティングを有します。

B +木、木は深い問題を解決するため、IOの数は多くの問題を解決するため、スイープライブラリ、テーブルを掃除するために強力な能力、ポインタ隣接するリーフノードに応じて、すべてのデータを取得するために、テーブルを掃除することができるようになります、常にルートノードを検索しません。ソート強く、葉ノードはリスト、安定した効率を命じています。

ハッシュ値はサポートしていない見つけるためにインデックスを取って、その発見の唯一同等の、レコードを検索、ハッシュコードによると、インデックスを指定することができ

MySQLのストレージエンジンは、テーブルのストレージエンジンの種類、データの仕方テーブルデータの保存と管理にあり、各テーブルには、独自のストレージエンジンを持つことができ、InnoDBのあるデフォルト値を指定しなかったのInnoDBで、行レベルのロック、サポート物事をサポートしています。

MyISAMストレージエンジンでは、インデックスはB +ツリー構造であり、レコードに対応する.MYIリーフノードのインデックスファイルはディスクのアドレスに配置されています。ディスクアドレス、データへのアクセスに応じてファイルの.MYD特定のデータ。

InnoDB内で、インデックスはB +ツリー構造、主キーインデックス、リーフノードのすべてのフィールドにインデックスに対応する完全なデータInnoDBストレージエンジンです。キーシーケンスの主キーは、物理ストアの順序を決定し、同じキーインデックスを持つマスターキーの物理的な順序は、クラスタ化インデックスと呼ばれる、唯一の主キーインデックスは、クラスタ化インデックスです。

これは、クラスタ化インデックスと呼ばれるデータインデックスの物理ストレージを決定します。

テーブルの主キーが存在しない場合には、ユニークな唯一の非空のフィールドであり、そうでない場合は、物理ディスクの順序を決定するために、クラスタ化インデックスとして隠された行IDが存在します。物理的な順序を決定

InnoDBは、他の主キーのインデックスインデックスインデックスに加えて、二次または二次インデックスと呼ばれます

唯一の主キーのインデックスのリーフ・ノードに格納されている完全なデータ、1つのコピーのみ。リーフノード以外のインデックスは、インデックスフィールドの値を格納し、また、記録物に対応する主キーのインデックスの値を保持します。

B +ツリーのリーフノードは、来る得るために彼のアシスタント、インデックスが対応するB +ツリーへのインデックスとセカンダリノードから見たときに、主キーのインデックスの値を取得するには、対応する値を見つけるために、リーフノードを見つけ、主キー索引スキャン対応すべてのフィールドを記録し、最終的な値。1つの主キー索引スキャンの複数のB +ツリーより。

共同インデックス、左端の一致

MySQLでのインデックスに使用することはできませんオプティマイザ(オプティマイザ)決定され、彼はすぐに見つけるためにインデックスを使用するかどうかを決定するのコストを計算します

利用機能は、インデックスを取ることができないインデックス列または式を計算することです。

引用符文字列、暗黙的な変換は、インデックスが表示されますを取ることはありません

条件は接頭辞インデックス%が先行しに行かないように、あなたは、インデックス%の増加の後ろに行くことができます

ない、好きではない、で<>これは必ずしもインデックスを取らない場合には

データベースの最適化:

表IIIモデル構築:パラダイム:フィールド原子、分割することができない;第二のパラダイム:第1正規形依存ない部分は、主キービジネスプロセスではありません。第3のパターン:第2正規、依存渡されません。

3-パラダイム少し冗長性、更新、削除操作の簡単な、だけでなく、テーブルの合理的な建設を需要に応じて。

データを格納するための正しい最小のデータ構造を使用してみてください

整数を表す文字列を使用してみてください、インデックスは、より複雑であること、インデックストライは、空のフィールドに構築することがないようではないヌル、ヌルと統計を使用してみてください。

公開された15元の記事 ウォンの賞賛0 ビュー1063

おすすめ

転載: blog.csdn.net/ma316110/article/details/105346956