提问人:sebastian 提问时间:1/12/2023 更新时间:1/12/2023 访问量:163
为什么哈希匹配联接可能比 SQL 中的联接原始值更快?
Why hash match join may be faster than join raw values in SQL?
问:
我不明白为什么在连接表时使用哈希函数转换输入可能比仅比较值而不进行哈希更快。
使用哈希匹配联接,SQL 必须读取联接列的所有行,并使用哈希函数创建相应的值。然后,它必须从第二个表中读取所有行,并再次对每个值使用哈希函数。使用哈希函数是一个额外的步骤,SQL 必须从第一个和第二个表中读取所有行,就像使用嵌套循环一样。
为什么哈希匹配可能更快?嵌套循环还必须从两个表中读取所有行,那么为什么在联接列上使用哈希函数可能会更好呢?这是一个额外的步骤,我们不能只比较值而不进行哈希处理吗?
我试图理解为什么它可以更快,但我遇到的每个教程都没有真正解释为什么对连接值进行哈希处理,然后在 bin 中比较它们可能比在 bin 中比较“原始”值更快。
答: 暂无答案
评论