ClickHouse Join篇

join:

1.Alter table mt drop partition '' 可删除本地分区 集群表的分区需要依次删本地表

alter table dwd_dms_msg_detial_di drop partition ('201912','20191226')

2.join 减少列,临时表不能起别名,只能更改字段名 避免冲突模糊不清

3.普通join数据发到远程服务器形成右表 global join 依次与右表join

4.join 一对多时 all返回所有结果 any 返回第一个结果

 

JOIN

join引擎:

join操作无缓存,需重新计算。因此可使用‘Join’引擎,预处理Join数据结构,保存在内存中。

效率:

ANY LEFT JOIN > ANY INNER JOIN > ALL LEFT JOIN > ALL INNER JOIN。

 

join 小表字典解析时:

如果你需要使用JOIN来关联一些纬度表(包含纬度属性的一些相对比较小的表,例如广告活动的名称),那么JOIN可能不是好的选择,因为语法负责,并且每次查询都将重新访问这些表。对于这种情况,您应该使用“外部字典”的功能来替换JOIN。

 

where :

如果存在WHERE子句, 则在该子句中必须包含一个UInt8类型的表达式。 这个表达是通常是一个带有比较和逻辑的表达式。 这个表达式将会在所有数据转换前用来过滤数据。

 

join_nulls

SETTINGS join_use_nulls = 1 ; 查询时 末尾加此设置,join时才会有才有is / is not null 的匹配,否则空 默认为 report = "" ,同时 建表时可设置 复合型Array(Nullable(Int8)) 或 Nullable(Int8) 为INt8类型字段 ,但空时默认为null , 此nullable 负面影响性能且消耗额外空间,且 Nullable不能再表的索引中。可更改Server配置,将默认值Null 改变

你可能感兴趣的:(clickhouse)