找回密码
 会员注册
查看: 22|回复: 0

ClickHouse查询优化详细介绍

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-9-20 16:10:44 | 显示全部楼层 |阅读模式
作者:oliverdding,腾讯CSIG测试开发工程师你想要的ClickHouse优化,都在这里。ClickHouse是OLAP(Onlineanalyticalprocessing)数据库,以速度见长[1]。ClickHouse为什么能这么快?有两点原因[2]:架构优越列式存储索引数据压缩向量化执行资源利用关注底层细节但是,数据库设计再优越也拯救不了错误的使用方式,本文以MergeTree引擎家族为例讲解如何对查询优化。ClickHouse查询执行过程⚠️本节基于ClickHouse22.3版本分析clickhouser-server启动后会在while循环中等待请求,接收到查询后会调用executeQueryImpl()行数构建AST、优化并生成执行计划pipeline,最后在executeImpl()中多线程执行DAG获取结果,这篇文章只关心SQL执行,省略掉网络交互部分,查询执行流程如下图所示:SQL的解析优化和编译原理息息相关,本节将包含大量编译原理和代码细节,属扩展知识。词法解析和语法解析ClickHouse拿到需要执行的SQL,首先需要将String格式的字符串解析为它能理解的数据结构,也就是AST和执行计划。构造AST部分代码如下所示:// src/Interpreters/executeQuery.cppstatic std::tuple
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-27 00:32 , Processed in 2.209836 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表