タグ

btreeに関するclavierのブックマーク (3)

  • B-Tree インデックス - オラクル・Oracleをマスターするための基本と仕組み

    B-Tree インデックス (B-Tree Index) オラクルのインデックス、すなわち、デフォルト時のインデックスは B-Tree インデックス(※1) になる。 B-Tree インデックスとはバランスド・ツリーインデックスの略である(1969 年頃に既に考案されている)。プログラミングを始めたときにソートアルゴリズムやデータ構造で勉強したであろうと思う二分木 (Binary-Tree) の進化版みたいなものである。 一部のブランチが異常に成長しないように平衡を保つように再編成(バランス)する仕組みによって、常にインデックスによる検索性能を高い状態に保つことができる(※2)。 RDBMS によっては色々な種類のインデックスが存在しているが、現在においても B-Tree インデックスが多くのケースで優れたパフォーマンスを出していることには変わりないようである。 (※1) B-Tree に

  • PostgreSQLのSQLチューニングについて

    青柳です。 PostgreSQLSQLをチューニングするのに役に立つドキュメントは家のドキュメントです。 ただし、家のドキュメントは読みにくいところがあるので、用語の解説とわかりやすい説明のリンクをつけました。 家を読みながらか、先にこちらを読んでから家を読むとよいです。 あと、実際のチューニング例のリンクも追加しました。 第 14章性能に関するヒント http://www.postgresql.jp/document/9.2/html/performance-tips.html ■用語 ・シーケンシャルスキャン テーブルを順に走査していく。テーブルの多数を読む場合、インデックススキャンよりも有効。インデックススキャンはインデックス用のデータ領域にアクセスするので余分にアクセスすることになる。例えばの全てを読むのに一々目次を見ながら読むのは効率的では無いのと一緒。 ・インデック

  • なぜBTreeがIndexに使われているのか - maru source

    ※この内容は個人的な考察なので、間違っている箇所もあると思います。そういう部分を見つけた際はぜひ教えて下さい。 RDBMSの検索を早くするためにIndexって使いますよね。例えばこんなテーブル CREATE TABLE user ( id INT UNSIGNED NOT NULL, name VARCHAR(255) NOT NULL, UNIQUE INDEX (id) ); idカラムにIndexを張っています。これはidでの検索を高速にするためです。ここでidカラムにIndexが貼っていない場合と比べると検索時間が大幅に変わってきてしまいます(特にレコードが多くなった時) ではなぜIndexを貼ると検索が早くなるんでしょう?? Indexとはその名の通り索引を意味します。特定のカラムの索引を作成しておくことで検索を高速化します。 (の最後によみがな順で単語が並べられたりしています

    なぜBTreeがIndexに使われているのか - maru source
  • 1