当前位置: 首页 > news >正文

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
在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/252648.html

相关文章:

  • Arduino驱动STS35数字温度传感器(温湿度传感器)
  • 一起学docker系列之十八Docker可视化工具 Portainer:简介与安装
  • 【数据结构】线段树
  • 王道数据结构课后代码题p175 06.已知一棵树的层次序列及每个结点的度,编写算法构造此树的孩子-兄弟链表。(c语言代码实现)
  • filter过滤器
  • MES物料的动态批次管理漫谈
  • 【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法
  • vue3使用动态component
  • 单机游戏推荐:巨击大乱斗 GIGABASH 中文安装版
  • 计算机系统启动过程
  • DedeCms后台文章列表文档id吗?或者快速定位id编辑文章
  • 【开发问题解决方法记录】03.dian
  • QT之QString
  • 常见的几种计算机编码格式
  • 3D旋转tab图
  • openGL 三:矩阵和向量
  • Socket和Http的通讯原理,遇到攻击会受到哪些影响以及如何解决攻击问题。
  • 【springboot】整合redis
  • 回溯和分支算法
  • 深入理解:指针变量的解引用 与 加法运算
  • Docker 镜像构建的最佳做法
  • 工作上Redis安装及配置
  • 电商项目之Web实时消息推送(附源码)
  • 上机实验四 哈希表设计 西安石油大学数据结构
  • Ubuntu22.04 交叉编译mp4V2 for Rv1106
  • 缓存穿透、击穿、雪崩
  • (1w字一篇理解透Unsafe类)Java魔法类:Unsafe详解
  • Python的正则表达式使用
  • Elasticsearch:评估 RAG - 指标之旅
  • 【2023.12.4练习】数据库知识点复习测试