为啥解释分析和执行查询时间不同

Posted

技术标签:

【中文标题】为啥解释分析和执行查询时间不同【英文标题】:Why explain analyze and execution query time is different为什么解释分析和执行查询时间不同 【发布时间】:2021-07-01 14:36:42 【问题描述】:

我有一个基于条件b.customer_id = a.customer_id 连接两个表的查询,两个表上的两个表都有索引(btree)customer_id

当我运行explain analyze 时,它显示15 ms

但是当我执行查询时,它需要26 secs:

Successfully run. Total query runtime: 26 secs 168 msec.
30038 rows affected.  

【问题讨论】:

【参考方案1】:

那是因为您使用 pgAdmin 或类似的客户端工具需要很长时间才能呈现 30038 行。

【讨论】:

那么应该注意哪个时间是实际查询执行时间呢?我对 PgAdmin 中的 query execution timeExplain Analyze Execution time 感到困惑。 这取决于您的用例。如果您的实际用例是使用 pgAdmin 查看 30000,请花 26 秒。服务器上的执行时间不能包含网络延迟或客户端处理结果所花费的时间。

以上是关于为啥解释分析和执行查询时间不同的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Spark 以不同的方式解释这两个查询?

MySQL 专家:为啥 2 个查询给出不同的“解释”索引使用结果?

有人可以解释为啥以下查询的功能不同吗?从字面上看,两者之间的唯一区别是

为啥不同时区对时间的解释不同?

PowerShell和Python能结婚吗?听说他们是相同类型啊,为啥不能,他们互补,非常和谐。

PowerShell和Python能结婚吗?听说他们是相同类型啊,为啥不能,他们互补,非常和谐。