
文章插图
特定场景,特殊优化
针对同一个场景的不同状况,选择使用不同的实现方式,尽可能将性能最大化 。关于这一点,其实在前面介绍字符串查询时,针对不同场景选择不同算法的思路就有体现了 。类似的例子还有很多,例如去重计数 uniqCombined 函数,会根据数据量的不同选择不同的算法:当数据量较小的时候,会选择 Array 保存;当数据量中等的时候,会选择 HashSet;而当数据量很大的时候,则使用HyperLogLog 算法 。
对于数据结构比较清晰的场景,会通过代码生成技术实现循环展开,以减少循环次数 。接着就是大家熟知的大杀器—向量化执行了 。SIMD 被广泛地应用于文本转换、数据过滤、数据解压和 JSON 转换等场景 。相较于单纯地使用 CPU,利用寄存器暴力优化也算是一种降维打击了 。

文章插图
持续测试,持续改进
如果只是单纯地在上述细节上下功夫,还不足以构建出如此强大的ClickHouse,还需要拥有一个能够持续验证、持续改进的机制 。由于 Yandex的天然优势,ClickHouse 经常会使用真实的数据进行测试,这一点很好地保证了测试场景的真实性 。与此同时,ClickHouse 也是我见过的发版速度最快的开源软件了,差不多每个月都能发布一个版本 。没有一个可靠的持续集成环境,这一点是做不到的 。正因为拥有这样的发版频率,ClickHouse 才能够快速迭代、快速改进 。
所以ClickHouse 的黑魔法并不是一项单一的技术,而是一种自底向上的、追求极致性能的设计思路 。这就是它如此之快的秘诀 。
本文摘编于《ClickHouse原理解析与应用实战》,经出版方授权发布 。
#欢迎来留言#
你用过ClickHouse吗?
对此你怎么看?
CSDN携手【机械工业出版社】送出
《ClickHouse原理解析与应用实战》一本
截至7月17日12:00点

文章插图
关于作者:
ClickHouse贡献者之一,ClickHouse布道者,资深架构师,腾讯云最具价值专家TVP,开源爱好者, 十多年IT从业经验,对大数据领域主流技术与解决方案有深入研究,擅长分布式系统的架构设计与整合 。曾主导过多款大数据平台级产品的规划、设计与研发工作,一线实战经验丰富 。现就职于远光软件股份有限公司,任大数据事业部平台开发部总经理 。
【ClickHouse 为何如此快?】
推荐阅读
- 国外的大熊猫都是中国的吗?大熊猫为何只有中国有,外国都没有呢??
- 古树普洱茶今年猛涨价,曼松古树为何价高
- 新品体验:新型5G水晶头为何开始流行?
- 芯片|年内最贵新股遭7.78亿弃购 “超募王”纳芯微为何遇冷?A股打新赚钱效应剧减
- 杭州|游客拍到一男子疑似在江面行走引围观:当地网友揭秘为何没陷下去
- 为何新茶不耐泡,黑茶为何是唯一可收藏的茶
- 老婆为何总是别人的好
- 男人为何喜欢有主的女人
- 男人为何喜欢“制服诱惑”
- 陈皮和青皮的效果,为何同年份的新会陈皮颜色不样
