Selection - Evaluating Relational Operation - Database Management Systems
Database Management Systemsの14章。
マインドマップから再構成したまとめ
簡単な Selection
- reserves (100件/page, 1000 pages)
- select * from reserves where rname = 'Joe'
- 何も考えない方法:1000 I/O
- No Index, Sorted Data: log2(1000) = 10 I/O
- practical には sorted はほとんどない
- B+-Tree Index 。仮に 100 page マッチする。
- Clustered : 100 I/O + α
- Unclustered: 10000 I/O これは不利。
- Hash Index 100件とすると
- Clustered : 大変良い。数 page で済む
- Unclustered : 1-100 I/O (データの分布次第)
General Selection
- CNF
- selection without disjunction
- primary で絞り減らしていく
- index が (key, rid) や (key, rid-list) の場合は rid で intersect する
- selection with disjunction
- index がないと結局 fullscan になりがち
所感
- disjunction が不利な理由を理解した