首页 > 其他分享 >8.ClickHouse系列之查询优化(二)

8.ClickHouse系列之查询优化(二)

时间:2022-10-21 21:47:11浏览次数:77  
标签:JOIN 查询 右表 多表 优化 ClickHouse 分布式

本文介绍多表关联查询优化方式

1. 用IN代替JOIN

当多表查询时,查询的数据仅从一张表出时,可考虑用IN操作而不是JOIN

SELECT a.* FROM hits_v1 a WHERE a.CounterID in (SELECT CounterID FROM visits_v1);

2. 多表JOIN小表在右

右表关联时被加载到内存与左表进行对比,所以多表JOIN时右表必须是小表。

3. 注意谓词下推

ClickHouse在join查询时不会主动发起谓词下推的操作,需要每个子查询提前完成过滤操作。新版本不存在此问题,可以在查询时EXPLAIN SYNTAX

4. 分布式表使用gobal

两张分布式表上的IN和JOIN之前必须加上GLOBAL关键字,右表只会在接收查询请求的那个节点查询一次,并将其分发到其他节点上。如果不加GLOBAL关键字的话,每个节点都会单独发起一次对右表的查询,而右表又是分布式表,就导致右表一共会被查询N^2次(N是该分布式表的分片数量),这就是查询放大,会导致很大开销

欢迎关注公众号算法小生沈健的技术博客

标签:JOIN,查询,右表,多表,优化,ClickHouse,分布式
From: https://www.cnblogs.com/shenjian-online/p/16814849.html

相关文章

  • 1.ClickHouse系列之Docker本地部署
    本文介绍docker-compose方式部署clickhouse数据库编写docker-compose.yml文件:version:'3'services:elasticsearch:image:clickhouse/clickhouse-server......
  • 2.ClickHouse系列之特点介绍
    1.列式存储采用列式存储时,数据在磁盘上的组织结构为:123张三李四王五182025好处:对于列的聚合、计数、求和等统计操作由于列式存储由于列数据类型相同,更容易......
  • 3.ClickHouse系列之SQL操作
    首先我们建表,表引擎我们后续文章在详细介绍,我们首先了解下基本SQL语法CREATEDATABASEstudy;CREATETABLEstudy.customer(idUInt8,cityString,name......
  • 4.ClickHouse系列之数据类型与表引擎介绍
    上篇文章已经创建过表及熟悉了基本语法,本文介绍CK的数据类型以及表引擎的一些分类与作用1.数据类型类型整型Int8Int16Int32Int64浮点型Float32Flo......
  • 基于链式前向星的堆优化dijsktra | 模板
    关于SPFA,ta死了基于链式前向星的堆优化\(dijsktra\):复杂度\(O(mlogn)\),要求非负权。#include<iostream>#include<cstdio>#include<cstring>#include<queue>#inc......
  • ClickHouse(二)优化
    ClickHouse优化执行计划    AST(语法树)、SYNTAX(优化后的SQL语句)、PIPELINE(查看PIPELINE计划,可看线程数)建表优化    数据类型优化:1.限定好数据类型  2.......
  • Starrocks坏盘后数据无法查询恢复的步骤
    1.先进入/opt/starRocks/be/conf把坏盘从数据盘中删除2.停止服务停止be服务bin/stop_be.sh3.启动服务 bin/start_be.sh--daemon因为是三副本,所以数据是不会丢失......
  • .net core -利用 BsonDocumentProjectionDefinition 和Lookup 进行 join 关联 MongoDB
    前序   前段时间由于项目需要用到MongoDB,但是MongoDB不建议Collectionjoin 查询,网上很多例子查询都是基于linq进行关联查询。但是在stackoverflow找到一个例子,程......
  • es通过时间聚合查询一周中每天的数据平均值
    场景回顾:设备上传的数据保存在es中,大屏模块要统计本周的数据折线图(一个设备三分总上传一次,所以拟定每天聚合求个平均值)kibana查询请求GETxxxx_2022-10/_search{"s......
  • WordPress 优化 MySQL 数据库慢查询
    搭建WordPress网站会占用大量的内存,还需要一些好些的服务器配置之外,我们如果想更好的给用户有更好的访问体验,对网站优化也是必不可少的。很多时候用WordPress越久,数据......