gpt4 book ai didi

postgresql - PostgreSQL 中的嵌套连接与合并连接与哈希连接

转载 作者:行者123 更新时间:2023-11-29 11:09:36 26 4
gpt4 key购买 nike

我知道了

  1. 嵌套连接
  2. 合并加入
  3. 哈希连接

作品及其功能。

我想知道在 Postgres 中这些连接是在什么情况下使用的

最佳答案

以下是一些经验法则:

  • 嵌套循环连接如果连接的一侧只有几行,则首选。如果连接条件不使用相等运算符,嵌套循环连接也用作唯一选项。

  • Hash Joins 如果连接条件使用相等运算符并且连接的两边都很大并且散列适合 work_mem,则首选。

  • 合并联接如果联接条件使用相等运算符并且联接两边都很大,但可以根据联接条件有效地排序(例如,如果有连接列中使用的表达式的索引)。

一个典型的 OLTP 查询只从一个表中选择一行,而从另一个表中选择关联的行,总是使用嵌套循环连接作为唯一有效的方法。

连接具有许多行的表(在连接之前无法过滤掉)的查询对于嵌套循环连接来说效率非常低,并且如果连接条件允许,将总是使用散列或合并连接

优化器会考虑这些连接策略中的每一种,并使用 promise 成本最低的一种。这个决定所依据的最重要的因素是连接双方的估计行数。因此,错误的优化器选择通常是由行数估计错误引起的。

关于postgresql - PostgreSQL 中的嵌套连接与合并连接与哈希连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49023821/

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