三种连接方式的特点

本帖最后由 Extremeways 于 2013-3-27 23:06 编辑

nested loop:
1.一个大表和一个小表(驱动表)连接,连接方式可以是等值或者是不等值
2.驱动表数据较小或者内部表已连接的列有唯一性索引或者高度可选的非唯一性索引,效率很高
3.能快速读取结果集中第一批记录而不必等待整个结果集完全确定下来

hash join:
1.一般两张相同大小的表连接,初始参数hash_join_enable=true
2.只能是等价连接,只能是CBO模式
3.只有一张源表需要排序,可能比merge join更快,因为只需要对一张源表排序;
也可能比nested loop更快,因为处理内存中的hash表比处理b-tree索引更快
4.可能会使用到临时表空间,所以最好pag_aggregate_target设置的比较大

merge join:
1.首先对2张表的连接列进行排序后再连接
2.当缺乏数据选择性或者有效索引时,或者2个表都比较庞大,可能比nested loop更有效
3.只能是等值连接,可能使用temp表空间
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值