每日一博 | StarRocks 技术内幕:向量化编程精髓
作者:康凯森,StarRocks PMC,负责查询方向的研发 本文是对我在 StarRocks 线下 MeetUp 演讲的整理,主要分为三部分:第一部分简要介绍向量化的基础知识,第二部分讲解数据库如何进行向量化,最后是 StarRocks 向量化实践后的一些粗浅思考。 #01 向量化为什么可以提升数据库性能? — 本文所讨论的数据库都是基于 CPU 架构的,数据库向量化一般指的都是基于 CPU 的向量化,因此数据库性能优化的本质在于:一个基于 CPU 的程序如何进行性能优化。这引出了两个关键问题: 1. 如何衡量 CPU 性能 2. 哪些因素会影响 CPU 性能 第一个问题的答案可以用以下公式总结:CPU Time = Instruction Number * CPI * Clock Cycle Time Instruction Number 表示指令数。当你写一个 CPU 程序,最终执行时都会变成 CPU 指令,指令条数一般取决于程序复杂度。 CPI 是 (Cycle Per Instruction)的缩写,指执行一个指令需要的周期。 Clock Cycle Time 指一个 CP...