gpt4 book ai didi

postgresql - 解释结果中的 "Recheck Cond"是什么意思?

转载 作者:行者123 更新时间:2023-11-29 11:20:55 37 4
gpt4 key购买 nike

来自 PostgreSQL 文档中的示例:

EXPLAIN SELECT * FROM tenk1 WHERE unique1 < 100 AND stringu1 = 'xxx';
QUERY PLAN
------------------------------------------------------------------------------
Bitmap Heap Scan on tenk1 (cost=5.04..229.43 rows=1 width=244)
Recheck Cond: (unique1 < 100)
Filter: (stringu1 = 'xxx'::name)
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=101
width=0)
Index Cond: (unique1 < 100)

我说的对吗

  • 首先对第一个条件的所有行执行位图索引扫描,然后

  • 然后在返回的行上,对第二个条件执行位图堆扫描?

既然 Bitmap Index Scan 已经检查了 unique1 < 100 上的 Index Cond,为什么在 Bitmp heap Scan 中再次出现相同条件的“Recheck Cond”?“重新检查条件”是什么意思?

我不确定我是否理解这篇相关帖子 https://dba.stackexchange.com/questions/106264/recheck-cond-line-in-query-plans-with-a-bitmap-index-scan

谢谢。

最佳答案

这由 Tom Lane 解释在邮件列表中:

what is "Recheck condition" and why is it needed?

如果位图变得太大,我们将其转换为“有损”样式,在这种情况下我们只记住哪些页面包含匹配的元组而不是记住每个元组单独。当这种情况发生时,表访问阶段必须检查页面上的每个元组并重新检查扫描条件以查看返回哪些元组。

关于postgresql - 解释结果中的 "Recheck Cond"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50959814/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com