概要 †
インデックス †
- レコード = SSD 内に格納された行
- 内部実装
- インデックスは、SSD 上に埋め込まれた (column -> record pointer の) 順序付き辞書
- 複合インデックスは column -> record pointer の辞書ではなく、tuple(column, column) -> record pointer になっているだけ。
- 関数インデックスは、column -> record pointer の辞書ではなく、f(column) -> record pointer になっているだけ。
- B+木という平衡多分木が SSD に埋め込まれている。これは毎回の SSD ランダムアクセスが遅いので、多分木のノードリストを一括で取りたいから。
- インデックスも SSD に埋め込まれているのは、インメモリで全レコードのカラムを展開することが不可能だと推定すべきため。
- それ以上でもそれ以下でもない。これ以上、変な議論をしている複合インデックスの説明は、読み飛ばすこと。有害。
実行計画 †
- 実行計画の表示は、DB によって全然変わってくるので、それぞれについて勉強しなければならない。
- だが、Oracle の実行計画が読みやすく理解しやすいので、その用語で一旦説明して、最後に他の DB との関わりについて議論する
単一インデックス †
他の DB との関係 †
|