You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中EXPLAIN ANALYZE语句里的loops参数含义是什么?

理解PostgreSQL EXPLAIN ANALYZE中的loops=1

嘿,我来帮你搞清楚这个loops=1到底是什么意思~

首先先回顾下你的查询和执行计划:

postgres=# explain analyze select * from student;

对应的QUERY PLAN输出:

Seq Scan on student (cost=0.00..22.00 rows=1200 width=40) (actual time=0.005..0.005 rows=7 loops=1)
Planning time: 0.035 ms
Execution time: 0.019 ms

在PostgreSQL的EXPLAIN ANALYZE输出里,loops这个字段代表的是当前执行节点被重复运行的次数。

针对你的例子来说:

  • 这里的执行节点是Seq Scan on student(全表序列扫描),loops=1意味着这个扫描操作只被执行了1次。
  • 这完全符合你的查询场景:因为你是直接查询整个student表,PostgreSQL只需要一次性扫描完表中的所有数据(也就是实际返回的7行),不需要重复执行这个扫描步骤就能完成查询。

那什么时候loops会大于1呢?举两个常见场景:

  • 当这个节点是嵌套循环连接的内层表时:外层表每扫描到一行,内层表的查询节点就会被执行一次,此时loops的值就等于外层表返回的行数。
  • 某些需要重复迭代的查询:比如递归查询、部分聚合操作,或者带有UNION ALL且需要多次执行子计划的情况,都可能让节点的loops数大于1。

总结一下,你的loops=1就是最基础、最常见的情况——这个扫描节点只需要跑一次就完成了它的任务~

内容的提问来源于stack exchange,提问作者Mangu Singh Rajpurohit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:14:15