データベースや索引で使われる、挿入・検索・削除をすべて O(log n) で実現する自己平衡型の多分木構造
B-Tree は、データベースのインデックス(索引)として世界中で使われているデータ構造です。 500ページの本から「データベース」という単語を探すとき、1ページ目から全部めくるのは大変です。でも巻末の索引を使えば「→ 243ページ」とすぐわかります。B-Tree はこの「索引」の仕組みをコンピューター向けに最適化したもので、MySQL・PostgreSQL・SQLite などのデータベースや、ext4・NTFS などのファイルシステムで採用されています。
すべての葉ノードは同じ深さにあり、木の高さは常に O(log n) に保たれます。データが 100万件あっても高さ20以下で目的のデータにたどり着けます。
次数 t は「1つのノードにデータを何個まで入れていいか」を決める数です。t が大きいほど1つの箱にたくさん詰め込めます。
このデモでは t = 2, 3, 4 を選べます。まず t = 2 で試してみて、数字を追加するたびにノードが満杯になり、分割が起きる様子を確認してみましょう。

ハッシュ関数で高速にデータを検索するインデックス構造

小テーブルからハッシュテーブルを構築し大テーブルでプローブする等価結合アルゴリズム

メモリに収まらないテーブルをパーティション分割してディスク上でHash Joinする手法

カラム値ごとにビット配列を持ちAND/OR/NOTをビット演算で高速処理するインデックス

テーブル統計情報を元に複数の実行プランのコストを比較し最小コストのプランを選択する最適化手法

ディレクトリを倍増させて動的にバケットを拡張するハッシュ方式