「検索範囲ではなく値範囲を使うチューニング手法がB-Treeインデックスを採用しているDBにおいてなんら無効である」について

元ネタは以下のtwitterの投稿である。

https://twitter.com/kenta_feels_ayu/status/1721553272220373238

どういうことなのか理解しておきたいと思ったので記事にします。

 

「範囲検索ではなく値検索を使うチューニング手法がB-Treeインデックスを採用しているDBにおいて何ら無効である」について

結論から言うと、B+Treeインデックスは範囲検索にも優れており、値検索を使う場合と比べてどちらも同じくらい効率的であるため意味がない。と言うことを言っている。

範囲検索に優れているとは?

B+Treeインデックスはリーフノードからリーフノードへアクセスできる連結リストを持っており、これを利用して範囲検索を高速に行える。

図解

ChatGPTにB+treeインデックスの仕組みを質問しながら図解したら以下のようになった。

B-tree インデックス


ガッツリSQLチューニングする機会がほしい。