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 会从右表的所有分片中读取完整数据,然后收集到的右表数据会被广播到查询涉及的每个分片上。

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

相关推荐
狮歌~资深攻城狮1 天前
ClickHouse和Doris怎么选型
clickhouse
叶域20 天前
ClickHouse总体学习
学习·clickhouse
时空无限20 天前
clickhouse清除system 表数据释放磁盘空间
数据库·clickhouse
angryshan20 天前
ClickHouse合并任务与查询延迟专项测试
数据库·clickhouse·php
fusugongzi21 天前
spring boot连接clickhouse集群,实现故障节点自动切换
java·spring boot·clickhouse
AAEllisonPang22 天前
ClickHouse优化技巧实战指南:从原理到案例解析
clickhouse
Faith_xzc25 天前
Doris vs ClickHouse 企业级实时分析引擎怎么选?
大数据·数据库·clickhouse·数据库开发
hjehheje25 天前
hbase的主要功能
clickhouse
hjehheje1 个月前
hbase实训 阿达
clickhouse
hjehheje1 个月前
clickhouse删除一条数据
数据库·clickhouse·oracle