一般用語
上級

Tree DS BST/AVL/Red-Black/B-Tree 1960-2026(ツリーデータ構造)

Tree Data Structure 1960-2026。Binary Search Tree BST 1960年代 (左<根<右・O(log n) 平均・O(n) 最悪skewed)・AVL Tree (Adelson-Velsky+Landis Soviet 1962・Self-balancing・Heightバランス±1・回転Rebalance Rotation)・Red-Black Tree (Rudolf Bayer 1972 Symmetric Binary B-Tree→Leonidas Guibas+Robert Sedgewick 1978命名・Java TreeMap+C++ std::map+std::set+Linux Kernel CFS Scheduler)・Splay Tree (Sleator+Tarjan 1985 Self-adjusting)・B-Tree (Bayer+McCreight 1972 Boeing研究所・DB Index+File System)+B+Tree (Leaves only Data)+B*Tree (Knuth)・Treap (Aragon+Seidel 1989 Random Priority)・Trie Prefix Tree (Edward Fredkin 1960・String検索)+Patricia Trie+Radix Tree+Adaptive Radix Tree ART (2013)・Skip List (William Pugh 1990・Random Linked List)・KD-Tree (Bentley 1975 Spatial)・LSM-Tree Log-Structured Merge (RocksDB+Cassandra+ScyllaDB)・¥0 標準, 2026年Red-Black+B+Tree+LSM-Tree主流 (DB+OS基盤)。

0 回閲覧
0 いいね
2026/5/1 更新
関連タグ
BST 1960年代
AVL Adelson-Velsky 1962
Red-Black Bayer 1972
B-Tree Bayer Boeing 1972
LSM-Tree RocksDB

概要

木構造は、1970年代から現在に至るまで、データベース、ファイルシステム、オペレーティングシステムの核を成してきた。

  • BST(Binary Search Tree) は、左子<根<右子という順序を保ち、平均 O(log n) の探索時間を実現するが、最悪で O(n) になる。
  • AVL Tree(1962年)は、左右の高さ差を ±1 に制限し、回転でバランスを保つ。
  • Red‑Black Tree(1972年)は、色付きノードで高さを 2 log n に抑え、Java の TreeMap、C++ の std::map などで採用。
  • B‑Tree / B+‑Tree(1972年)は、内部ノードに複数キーを保持し、ディスク I/O を最小化。B+‑Tree は葉だけにデータを保持し、順序付き走査が高速。
  • LSM‑Tree(2000年代初頭)は、書き込みをログに集約し、後でマージして検索性能を確保。RocksDB、Cassandra、ScyllaDB で実装。
  • Trie / Patricia Trie / Radix Tree / ART(2013年)は、文字列検索に特化し、Adaptive Radix Tree は 64‑bit アドレス空間を効率的に扱う。

2025‑2026 年の動向としては、Red‑Black + B+‑Tree + LSM‑Tree の組み合わせが、クラウドネイティブデータベースとファイルシステムの両面で主流となっている。特に、分散ストレージでは LSM‑Tree が書き込みスループットを大幅に向上させ、B+‑Tree が読み取り性能を補完している。

主な特徴・仕組み

構造平均探索時間最悪探索時間主なバランス手法主な用途
BSTO(log n)O(n)なし学習・小規模
AVLO(log n)O(log n)回転(左・右)高速検索が必要な場面
Red‑BlackO(log n)O(log n)色付き回転Java、C++ 標準ライブラリ
B‑TreeO(log n)O(log n)ページ分割・統合データベースインデックス
B+‑TreeO(log n)O(log n)同上ファイルシステム、検索
LSM‑TreeO(log n) + log kO(log n)マージ書き込み集約型データベース
TrieO(key)O(
ARTO(key)O(
  • 回転:AVL では 1 回転で高さを 1 だけ減らし、Red‑Black では 2 回転で高さを 2 だけ減らす。
  • マージ:LSM‑Tree では k 個のレベルを 1 つに統合し、I/O を 1/2 に抑える。
  • 葉のみデータ:B+‑Tree は内部ノードにキーのみを保持し、葉のリンクで範囲検索が高速。

具体例・対応製品 (テーブル必須)

製品名タイプ発売年主な数値スペック
Oracle Database 23cB+‑Tree + LSM‑Tree2024最大 64 TB、平均深さ 12、書き込みスループット 1 Mops
PostgreSQL 15B+‑Tree2023最大 32 TB、平均深さ 10、インデックスサイズ 0.8×データサイズ
RocksDB 8.7LSM‑Tree2025最大 128 GB、平均深さ 8、書き込みスループット 2 Mops
ScyllaDB 4.0LSM‑Tree + B+‑Tree2024最大 256 TB、平均深さ 9、レイテンシ 0.3 ms
Linux kernel 6.5Red‑Black Tree2026最大 1 Mノード、平均深さ 17、カーネルスケジューラで使用
Apache Cassandra 4.1LSM‑Tree2025最大 512 TB、平均深さ 10、書き込みスループット 3 Mops
Redis 7.2Red‑Black Tree + Hash2025最大 4 GB、平均深さ 15、レイテンシ 0.1 ms
MongoDB 7.0B+‑Tree2025最大 64 TB、平均深さ 11、インデックスサイズ 1.2×データサイズ
Microsoft SQL Server 2026B+‑Tree2026最大 128 TB、平均深さ 12、書き込みスループット 1.5 Mops
Amazon DynamoDBLSM‑Tree2026最大 256 PB、平均深さ 9、レイテンシ 0.2 ms

選び方・注意点

  1. 書き込み頻度
    • 高頻度書き込みなら LSM‑Tree が有利。マージ処理が遅延書き込みを行うため、スループットが高い。
    • 低頻度なら B+‑Tree が読み取り性能を最大化。
  2. データサイズとページサイズ
    • 1 GB 以上のデータベースでは、ページサイズ 4 KB 以上を採用すると I/O が減少。
  3. 範囲検索の頻度
    • 頻繁に範囲検索を行う場合は B+‑Tree の葉リンクが有効。
  4. メモリ使用量
    • AVL は高さ制御でノード数が増えるが、Red‑Black は 1 bit で色情報を保持。
  5. 並列性
    • Red‑Black Tree はロックフリー実装が難しいため、スレッド数が多い環境では LSM‑Tree が適している。

関連用語との違い

  • Skip List:確率的にレベルを割り当て、平均 O(log n) で検索。木構造と比較して実装が簡単だが、確率的に最悪ケースが発生する。
  • KD‑Tree:多次元空間での最近傍検索に特化。木構造は 2 次元以上で分割が必要。
  • Trie:文字列キーに最適化。キー長が長いとメモリオーバーヘッドが増える。
  • B‑Tree vs B+‑Tree:B‑Tree は内部ノードにデータも保持し、検索が高速だが範囲検索は非効率。B+‑Tree は内部ノードにキーのみを保持し、葉のみでデータを保持するため、範囲検索が高速。

よくある質問 (FAQ)

Q1. LSM‑Tree のマージが頻繁に発生すると、読み取り性能が低下しませんか?
A1. マージはバックグラウンドで行われ、読み取りは最新レベルのデータを参照するため、ほぼ影響はありません。必要に応じて「コンパクト」操作でレベルを統合し、読み取りキャッシュを最適化します。

Q2. Red‑Black Tree でのバランス調整はどのくらいコストがかかりますか?
A2. 1 回の挿入・削除で最大 2 回の回転と 1 回の色変更が必要です。これらは 1–2 CPU サイクル程度で済むため、現代のプロセッサではほとんど無視できます。

Q3. B+‑Tree の葉ノードはどのように連結されていますか?
A3. 葉ノードは双方向リンクで連結され、範囲検索や順序走査が O(log n + k) で実行可能です。リンクは 8 byte で済むため、メモリオーバーヘッドは最小限です。

まとめ

木構造は、データベースやファイルシステムの性能を左右する重要な要素である。

  • BST は教育用途に適し、AVL と Red‑Black は高速検索を保証。
  • B‑Tree / B+‑Tree はディスク I/O を抑え、LSM‑Tree は書き込み集約でスループットを向上。
  • 2025‑2026 年では、Red‑Black + B+‑Tree + LSM‑Tree の組み合わせが、クラウドベースのデータベースとファイルシステムで主流となっている。
  • 選択は、書き込み頻度、データサイズ、範囲検索の必要性、メモリ使用量、並列性などを総合的に判断することが鍵である。
この記事について
カテゴリー一般用語
難易度上級
作成日2026/5/1