2023 SPRING CMU15721:Query Execution & Processing

Resources

Goal

DBMS的优化是一大堆优化的综合体,没有哪个优化比其他优化更重要。我个人总结为三个原则:

  • 没必要做的不必做
  • 能多线程就多线程
  • 要多利用硬件优化

而其中在查询执行的优化主要用到以下的技术

  • 数据预取 / 扫描共享
  • 任务并行化 / 多线程
  • 聚簇 (Cluster) / 排序
  • 延迟物化
  • 物化视图 / 结果缓存
  • 数据跳过 Data Skipping
  • 数据并行化 / 向量化
  • 代码特化 (Specification) / 编译

对于这些技术,对应上面的原则,我们可以很容易理解,延迟物化/数据向量化 这些就是减少没必要做的,代码特化也就是多用SIMD指令的就是利用硬件优化。

由于我个人对于OLAP更加感兴趣,所以接下来我主要关注于

  1. 代码层面的硬件优化例子
  2. 查询向量化的处理例子以及性能提升
  3. 并行执行的例子

这三个方面。

Hardware optimization in code level

Processing of query vectorization

Parallel execution

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020-2024 环烷烃
  • Visitors: | Views:

我很可爱,请我喝一瓶怡宝吧~

支付宝
微信