Clickhouse Join

ClickHouse中的Hash Join, Parallel Hash Join, Grace Hash Join
https://www.cnblogs.com/abclife/p/17579883.html
https://clickhouse.com/blog/clickhouse-fully-supports-joins-full-sort-partial-merge-part3

总结
本文描述并比较了ClickHouse中基于内存哈希表的3种连接算法。

哈希连接算法速度快,是最通用的算法,支持所有连接类型和严格性设置,但内存哈希表的创建是单线程的,如果右侧表非常大,就会成为瓶颈。

并行哈希连接算法通过同时创建多个哈希表,在右侧表很大的情况下速度更快,但需要更多内存。

Grace哈希连接算法是一种非内存限制版本,它将输入数据分割成多个数据桶,其中一些数据桶先存到到磁盘,然后在内存中按顺序处理。

下图总结了本文章中所有连接查询运行的内存消耗和执行时间(max_threads设置为30,右侧表为大表):

在这里插入图片描述

Grace哈希连接算在牺牲更多执行时间的前提下,内存消耗量可以通过增加数据桶数量以线性方式减少。

请注意,正如前面提到的和下面演示的那样,ClickHouse总是将grace_hash_join_itial_buckets的设置值向上舍入到最接近的2的幂次。因此,将grace_hash_join_itial_buckets设置为3时运行的查询实际上使用了4个初始桶。

选择正确的联接算法(ClickHouse 中对 Join 类型的支持 - Part 5)
https://blog.csdn.net/ClickHouseDB/article/details/132299482
https://clickhouse.com/blog/clickhouse-fully-supports-joins-part1

ClickHouse 联接算法概述
迄今为止,ClickHouse 已开发出以下 6 种联接算法:

Direct join

Hash join

Parallel hash join

Grace hash join

Full sorting merge join

Partial merge join
在这里插入图片描述

在这里插入图片描述

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值