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 が不利な理由を理解した