B+木インデックスとは?びーぷらすきいんでっくす
B+木インデックスとは、関係データベースの索引に最も広く使われる木構造。内部節点はキーと子へのポインタだけを持ち、実データへの参照はすべて最下段の葉に置く。葉どうしがキー順に連結されているため、等値検索だけでなく範囲検索やORDER BYにも効く。木の高さが均等に保たれ、探索コストは行数の対数に収まる。
最終更新:2026-10-06
この語が出る過去問を解く →背景
索引の探索コストを決めるのは比較回数ではなく、ディスクやページを何回読むかである。1回の読み出しで固定長のページが丸ごと来るなら、そのページへ詰め込めるキーを増やして枝分かれを広くし、木を低くしたほうが読み出し回数が減る。内部節点からデータ参照を追い出すのは、1ページあたりのキー数を最大化するための設計であり、二分探索木をそのままディスクへ置いても速くならない理由もここにある。
具体例
1,000万行の受注表で受注日に索引を張ると、「先月分」の抽出は開始位置の葉へ降りた後、葉のリンクをたどるだけで済む。木の高さが3〜4段なら数回のページ読込みで開始位置に着き、表を全件走査して数万ページ読む場合と桁違いの差が出る。MySQLのInnoDBやPostgreSQLが既定で作る索引もこの構造である。
試験での引っ掛け
B木(B-tree)との違いは、B+木が実データへの参照を葉だけに持ち、その葉を順に連結している点にある。範囲検索の速さの差はここから生まれる。もう一つ対比されるのがハッシュ索引で、等値検索は速いがキーの順序を保たないため範囲検索にも整列にも使えない。索引があれば常に使われるわけでもなく、抽出される行の割合が大きい問い合わせでは全表走査のほうが速いと判断される。
関連用語
出た過去問
出典:平成28年度 秋期 応用情報技術者試験 午前 問27(IPA)
B+木インデックスが定義されている候補キーを利用して、1件のデータを検索するとき、データ総件数Xに対するB+木インデックスを格納するノードへのアクセス回数のオー…
正解:logX
要点:B+木の探索コストは件数の対数オーダ
B+木は根から葉まで階層をたどる木構造で、1つのノードが多数の子を持つため木の高さはデータ件数の対数に比例します。候補キーで1件を検索する場合、根から葉までのノードをたどる回数がアクセス回数になるので、オーダは log X です。件数が増えても高さの伸びが緩やかなことが、大規模な表でも高速に検索できる理由です。
出典:平成29年度 春期 応用情報技術者試験 午前 問28(IPA)
“部品”表のメーカコード列に対し,B+木インデックスを作成した。これによって,“部品”表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデ…
正解:メーカコードの値が4001以上,4003以下の部品を検索する。
要点:B+木インデックスは範囲検索で最も効果を発揮する
B+木インデックスは値が大小順に並び、葉ノードが順につながっているため、ある範囲に含まれる値をまとめて取り出す範囲検索で効果が大きい。値の種類が多く均一に分散していれば、絞り込まれる行数も少なくて済む。
出典:平成30年度 秋期 応用情報技術者試験 午前 問29(IPA)
“部品”表のメーカコード列に対し,B+木インデックスを作成した。これによって,“部品”表の検索の性能改善が最も期待できる操作はどれか。ここで,部品及びメーカのデ…
正解:メーカコードの値が4001以上,4003以下の部品を検索する。
要点:B+木インデックスは絞り込みの効く範囲・等値検索で効果が大きい。
B+木インデックスは葉ノードがキー順に連結されているため、ある範囲に収まる値を探す検索や、特定の値に等しい行を探す検索で効率がよい。値の種類が多く均一に分散している状況で、限られた範囲だけを取り出す検索は、絞り込みが強く働くのでインデックスの効果が大きい。一方、否定条件のように表の大部分が該当する検索では、表全体を読むほうが速く、インデックスは活かせない。
出典:令和5年度 秋期 応用情報技術者試験 午前 問26(IPA)
“売上”表への次の検索処理のうち、B+木インデックスよりもハッシュインデックスを設定した方が適切なものはどれか。ここで、インデックスを設定する列を<>内に示す。…
正解:利用者IDが'1001'の売上を検索する。<利用者ID>
要点:ハッシュインデックスは等価検索専用。範囲検索は不可
ハッシュインデックスは、キーの値をハッシュ関数で変換して格納位置を求めるため、値が完全に一致する等価検索を高速に処理できる。一方で値の大小関係や並び順は保持しないので、範囲検索や前方一致検索には使えない。利用者IDが特定の値と一致する行を探す検索はまさに等価検索であり、ハッシュインデックスが適する。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。