問題
データベースのインデックスとして、B+木が広く用いられる理由として最も適切なものはどれか。
選択肢
- 1データを完全にメモリ上に保持する必要があるため
- 2範囲検索と挿入・削除を高速に行え、葉ノードがリストでつながるため
- 3常にO(1)で検索できるため
- 4NULL値を含むデータのみに有効なため
正解
2. 範囲検索と挿入・削除を高速に行え、葉ノードがリストでつながるため
詳しい解説を見る解説を閉じる
解説
B+木は多分木のバランス木で、内部ノードには探索用のキーのみを置き、実データ(または行へのポインタ)をすべて葉ノードに格納し、葉同士をキー順にポインタで連結する構造を持つ。1ノードに多数のキーを収めるため木の高さが低く抑えられ、ディスクI/O回数が少なくて済む。等値検索・挿入・削除はO(log n)で行え、さらに葉の連結リストをたどるだけでBETWEENのような範囲検索を効率的に処理できる点がRDBMSのインデックスに採用される主な理由である。データを完全にメモリ上に保持する必要があるという記述は誤りで、むしろディスク格納を前提とした構造である。常にO(1)で検索できるのはハッシュインデックスの特徴だが、範囲検索には対応できない。NULL限定という性質もない。「範囲に強いB+木、等値専門のハッシュ」と対比で覚える。
一問一答
全400問を繰り返し学習