①室で見た「セルポインタ配列」は1ページの中の話でした。テーブル全体は 何千ページにもなることがあります。全ページを毎回読んでいては遅すぎるので、 SQLiteはB-tree(バランス木)でページを組織し、目的の行に少ないページ読みで たどり着けるようにしています。実際のtrader.dbのticksテーブルを見てみましょう。
読み込み中…
箱をクリックすると①生バイトの間でそのページを開きます。葉ページが多いテーブルは帯状に圧縮して表示しています(ホバーで個別のページ番号)。
木を保つ秘密は「ページが満杯になったら分裂する」ことです。ここでは教材用の 小さな木(1ページ最大4件)で、キーを追加したときに実際に何が起きるかを 見てみましょう。分裂規則(中央付近のキーを親へ押し上げる/親も満杯なら 連鎖的に分裂/根が分裂すると木の高さが1増える)はSQLiteの実際の挙動に 合わせていますが、この木自体は説明用のシミュレーションで、実データとは 無関係です。