コストベースオプティマイザ
すべての候補プランに推定「コスト」(通常はIOとCPUの見積もり)を付け、最も安いものを選ぶクエリプランナーの設計。1990年ごろから、現代のあらゆるRDBMSの標準である。
核心はカーディナリティ推定、つまりWHERE x > 5が何行を返すかの見積もりだ。プランナーはヒストグラム、最頻値、異なり値数を使う。外れると、100行と見積もって実際は10万行、という事態になり、ネステッドループが破滅的に遅くなる。
Postgresではrandom_page_cost(既定4.0、SSDなら1.1に下げる)やeffective_cache_sizeを調整できる。統計が5割もずれていると、プランナーが今日と明日で別のプランを選び、性能がぶれる。AuroraやSnowflakeなどのクラウドDBは、実行時に適応的な再計画を行う。