gpt4 book ai didi

postgresql - 在 PostgreSQL 查询计划中,Materialize 和 Hash 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 11:49:42 32 4
gpt4 key购买 nike

这是 an example使用 Materialise 的查询计划:

Nested Loop  (cost=4.65..49.46 rows=33 width=488)
Join Filter: (t1.hundred < t2.hundred)
-> ... (outer)
-> Materialize (cost=0.29..8.51 rows=10 width=244)
-> ... (inner)

下面是一个使用哈希的查询计划示例:

Hash Join  (cost=230.47..713.98 rows=101 width=488)
Hash Cond: (t2.unique2 = t1.unique2)
-> ... (outer)
-> Hash (cost=229.20..229.20 rows=101 width=244)
-> ... (inner)

在第二个示例中,内部查询的结果被加载到哈希表中,对于每个外部行,哈希连接将执行哈希表查找。

在第一个示例中,内部的结果加载到内存中(这就是 Materialize 的意思,不是吗?),对于每个外部行,嵌套循环连接也必须这样做在物化数据中查找正确的行。它使用什么样的数据结构? (显然不是哈希表。)

最佳答案

经过咨询the source我看到 Materialize 基本上只是一个连续的行缓存(一个元组存储),它不断倒回并为每个外部行再次迭代。

关于postgresql - 在 PostgreSQL 查询计划中,Materialize 和 Hash 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38846199/

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