タグ

**あとで読むと*SQLに関するyamadarのブックマーク (3)

  • はじめに · PostgreSQL Internals

  • ブロックアルゴリズムとB-Treeアルゴリズム

    ファイルサーチを高速化するB-Treeアルゴリズム ext2、ext3がベースとするブロックアルゴリズムは、ブロック数が対応するディスクのジオメトリ数に制限されること、ファイルサーチにO(n)かかる(注)こと、ファイルサイズに関係するパフォーマンス低下など、いくつかの問題があった。 注:「O(n)」とは、実行時間が入力の大きさ「n」に比例するアルゴリズムである。O(n)は「nのオーダー」または「オーダーn」と読む。後述する「O(log n)」は、アルゴリズムの計算量に関する議論の場合logの底は常に2で、O(log n)の方がO(n)よりも効率が良い。例えばn=8の場合、O(log n)は入力8に対して3回の実行で済むが、O(n)は8回の実行となる。 ReiserFS、JFS、XFSといったファイルシステムでは、こうしたブロックアルゴリズムの限界に対して、早い段階からデータベースの技術をフ

    ブロックアルゴリズムとB-Treeアルゴリズム
  • インデックスの基礎知識

    ■ インデックスとは データベースの世界で、インデックス(索引)とはテーブルに格納されているデータを 高速に取り出す為の仕組みを意味します。 インデックスを適切に使用することによってSQL文の応答時間が劇的に改善 される可能性があります。 インデックスにはB-Treeインデックスをはじめ、ビットマップインデックス、 関数インデックスなどの種類がありますが、ここでは最も一般的に使われ、かつ ほとんどのDBMSでサポートされているB-Treeインデックスについて解説します。 ※ CREATE INDEX文でオプションを指定しない場合は通常B-Treeインデックスが 作成されます。 ■ B-Treeインデックスのしくみ B-Tree(Balanced Tree)インデックスは次のようなツリー状の構造になっています。 ツリーの先頭はヘッダブロックと呼ばれています。ヘッダブロックでは、キー値の 範囲

  • 1