External Sorting - Database Management Systems
Database Management Systemsの13章。
マインドマップから再構成したまとめ
背景
- データ量 > メモリ
- メモリ上でソートできない
- I/O を最小にするアルゴリズムが必要
Two way merge sort
- 学習用の例。書き込みに 1 ページ、読み込み用に 2 ページの計 3 ページしかメモリを使わずに merge sort
- 欠点
- 4ページ以上メモリが潤沢に存在しても使われない
- コスト
- おおまかに 2N * log2N I/O
- データを subfile (run)にわけてソート。
External merge sort
- b ページ使えるとしてそれをフル活用
- コスト
- log(b-1)N
B+-Tree をソートに使う
- ソート key に B+-tree の index があればそれを使う。
- Clustered index だとかなり幸せ
所感
- two way merge sort が 2 ページしか入力に使わないという部分が理解できず悩んだ。(解決済み)