ClickHouse 为何如此之快

目录

1.高层次架构

1.1 shared nothing

1.2 并行计算

1.3 列式存储

1.4 Merge Tree

1.5 稀疏索引

1.6 数据压缩

1.7 SQL支持

1.8 索引

1.9 支持在线查询

1.10 数据复制和对数据完整性的支持

2.低层次架构

3.算法优化

3.1 勇于尝鲜,不行就换

4.持续测试、持续改进


我们都知道,框架的设计可以分为自顶向下和自下而上,在传统观念中,或者说在我的观念中,做架构设计首先自然做的是顶层设计:
  • 事先应该做高层次的抽象设计;
  • 规划好各个模块的职责、切分的界面;
  • 分配好工程结构、包结构,最好能再来一些设计图,等等。
  • 而ClickHouse的设计,则采用了 自下而上。
  • 他们是如何实践 自下而上 设计的呢?
从硬件功能层面着手设计,在设计伊始,就至少需要想清楚这么几个问题:
  • 我们将要使用的硬件水平是怎样的?包括CPU、内存、硬盘、网络等等;
  • 在这样的硬件上,我们需要达到怎样的性能?包括延迟、吞吐量等等;
  • 我们准备使用怎样的数据结构?包括String、HashTable、Vector等等;
  • 选择的这些数据结构,在我们的硬件上会如何工作?
别小看这些细节,一点一滴的将它们累加起来,数据是非常可观的。也正因为注意了这些细节,所以ClickHouse在基准查询中,能做到1.75亿/每秒的数据扫描性能。那下面我将从如下几点来分享ClickHouse为什么如此之快。

1.高层次架构

1.1 shared nothing

    shared noting 是一种分布式计算架构。在这种架构中,每一个节点都是独立的,自给的,在系统中不存在单点竞争。更明确地说,没有节点共享存储和硬盘。

1.2 并行计算

    多核多节点并行化大型查询,也便于扩容。

1.3 列式存储

    不同的列存储在不同的文件。

1.4 Merge Tree

     ClickHouse支持主键表,为了快速执行对主键范围的查询,数据使用合并树进行递增排序。由于
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值