关系数据库 Query Execution 的流程
在关系型数据库中, 一条 Query 语句执行的流程如下:
DBMS将Quey语句翻译成特定的内部抽象语言, 通常有两种 Query Plan
- logical Plan: 使用关系代数描述 Query Plan, 描述关系操作符或者非关系操作符
- physical: 描述这些操作符的实际动作
Query 处理的三个阶段
- 解析以及重写 Query, SQL->logical plan
- Query 语言优化
logical plan -> 优化的 logical plan -> physical plan - Query Execution: 在数据库中执行这个 physical plan
Iterator Model:
简单点说, 每次处理一行, 尽可能地将这一行的所有操作处理完, 同时, 假设A行还没有处理完, 可以开始处理B行, 同时处理多行数据的方式称为 Pipeline