首页/数据/SQL 速查/PG 扫描节点:Seq / Index / Bitmap
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条函数速查60 条变更与事务52 条
性能与执行计划72 条

PG 扫描节点:Seq / Index / Bitmap

Seq Scan、Index Scan、Index Only Scan、Bitmap Heap Scan 各有适用面:识别计划树中的扫描方式判断瓶颈环节。

SQL 速查数据更新于 2026-10-12

常见扫描节点

节点含义与提示
Seq Scan顺序全表扫描:小表或需读取大比例数据时属于正常选择
Index Scan索引扫描后回表取行;选择性高时成本低
Index Only Scan只需索引即可返回;受可见性映射影响,可能伴随 Heap Fetches
Bitmap Index Scan + Bitmap Heap Scan先扫描索引建位图,再按物理顺序取堆:中等选择性与多条件组合常用
TID Scan按 ctid 直接定位行,常见于批量更新后回写

示例

示例
-- 仅用于对比诊断,不要在生产长期关闭顺序扫描
SET enable_seqscan = off;
EXPLAIN SELECT * FROM orders WHERE user_id = 100;
RESET enable_seqscan;
Index Only Scan 的 Heap Fetches 偏高说明可见性映射未覆盖:表需要及时 VACUUM 才能减少回表。

易错点

  • 看到 Seq Scan 就断定要加索引:低选择性查询全表扫描更划算,强行加索引可能更慢
  • 把 enable_* 参数长期关闭:它们只用于诊断对比,生产环境应恢复默认

数据来源与参考

  • PostgreSQL Documentation §14.1 Using EXPLAIN
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌