背景:orders 约 100 万行。看点按顺序:① 无索引时 Seq Scan 扫全表 88ms → 建索引后 0.1ms;② 命中两千行时优化器自动换 Bitmap Heap Scan;③ 复合索引对齐 ORDER BY 后计划里没有 Sort 节点;④ lower(email) 这种查询普通索引救不了。
读 EXPLAIN 抓三样:rows 估算 vs actual(差一个量级就 ANALYZE 重新采样)、Buffers 里 read 与 hit 的比例、Execution Time。
耗时为百万行级样本表实测整理;EXPLAIN 输出的 cost/rows 与统计信息相关,重现时数字会有出入,节点形状是重点。