clickhouse 使用global in 优化 in查询

文章目录

      • in例子
      • [使用global in](#使用global in)

in例子

bash 复制代码
SELECT uniq(UserID) FROM distributed_table
WHERE CounterID = 101500 
AND UserID IN (SELECT UserID FROM distributed_table WHERE CounterID = 34)

对于in 查询来说,本来查询的就是分布式表,假设这个表有100 个分片,in 查询就要查询100次,再加上外面也是查的分布式表,那就是100*100 次

bash 复制代码
SELECT UserID FROM distributed_table WHERE CounterID = 34

使用global in

bash 复制代码
SELECT uniq(UserID) FROM distributed_table
WHERE CounterID = 101500 
AND UserID  global IN (SELECT UserID FROM distributed_table WHERE CounterID = 34)

global in 实现

ClickHouse 会从右表的所有分片中读取完整数据,然后收集到的右表数据会被广播到查询涉及的每个分片上。

相当于右表里的只查询一次,大大减少处理时间

相关推荐
阿里云大数据AI技术5 天前
鹰角网络基于阿里云 EMR Serverless StarRocks 的实时分析工程实践
starrocks·clickhouse·阿里云·emr·实时分析
更深兼春远8 天前
flink+clinkhouse安装部署
大数据·clickhouse·flink
Sais_Z11 天前
ClickHouse的学习与了解
数据库·clickhouse
风中凌乱14 天前
ClickHouse-Backup的安装与部署
clickhouse
风中凌乱14 天前
clickhouse集群的安装与部署
clickhouse
白眼黑刺猬14 天前
ClickHouse从入门到企业级实战全解析课程简介
clickhouse
chenglin01617 天前
ClickHouse、Doris、OpenSearch、Splunk、Solr系统化分析
clickhouse·solr·lucene
慕y27417 天前
Java学习第一百一十七部分——ClickHouse
java·学习·clickhouse
zuozewei23 天前
随笔之 ClickHouse 列式分析数据库安装注意事项及基准测试
数据库·clickhouse
牛牛木有坏心眼(大数据进阶)24 天前
linux系统离线环境安装clickhouse客户端
linux·clickhouse