cmu15445 查询执行- 上

date
Jul 15, 2023
slug
query-execution-1
status
Published
tags
15445
Database
summary
该文章介绍了数据库查询执行的三种处理模型:迭代模型、物化模型和向量批处理模型,以及访问方法:顺序扫描和索引扫描。此外,还讨论了修改查询和表达式求值。
type
Post
 

AGENDA

 
notion image
notion image

Processing Models

Approach 1:Iterator Model
  • 也叫火山
  • 也叫 pipeline
Approach 2:Materialization Model 代表作 monetdb
Approach 3:Vectorized Batch Model 代表作 x100 monetdb duckdb
 
三者的区别在
处理的 tuple 数量级不同
火山 一个
物化 全部
向量 部分 batch
 

Access Methods

notion image

SEQUENTIAL SCAN

notion image
notion image

SEQUENTIAL SCAN:OPTIMIZATIONS

主要讲了最后一点 Data Skipping
notion image
第一种 近似查询(有损)
第二种 区域地图(无损)
预先计算所有的 agg
notion image
notion image
  • stonedb 的 datapack 的元数据就是一些 zone maps
notion image

INDEX SCAN

有索引扫描就用不上 sc 了
notion image
notion image
 

Modification Queries

notion image
notion image
andy 的工资加了两次 本来 999 ,加到 1099 还是小于 1100
这个更新问题被称为万圣节问题
notion image

EXPRESSION EVALUATION 表达式求值

notion image
举例
notion image
这种方式很慢,有一些编译优化的手段让 banch 变成 for
notion image
notion image
 
JIT: just at time java 的一种技术
java 把代码字节码编译成特殊形式 比如 for 就编译成二进制 可以加速
AOT: ahead of time
提前把字节码编译成二进制,例如 安卓程序的安装过程
 

© Phoenix Z 2021 - 2025