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