优化的目标
CPU层面
cpu是多级流水线操作,所以我们的目标是让每个处理器的每个部分都处于busy。多条流水线,我们没有依赖的指令可以放到不同的流水线里面。但是流水线如果遇到branch判断错误的话,就要flush掉


可以用值传递来代替跳转

查询执行模型
iteration model就是一次next调用返回一个tuple。但这个流水线或者叫火山模型会在join, order by,subquries被阻断。

物化模型就是一次返回所有的tuple。

矢量化模型就是batch,在上面两个模型之间,同时也可以通过simd优化。

查询的方向

查询操作并行化
水平并行化
通过插入exchange operator来汇集结果

垂直并行化
-------多条流水线并行
我的理解是:就是左边都是A和B建立起来的hashtable,然后C和D的探测可以在两路流水线并行。sql join 算法 时间复杂度_sql join复杂度_stevewongbuaa的博客-CSDN博客 【数据库内核】基于代价的优化器引擎之Join Order_join_order_Night_ZW的博客-CSDN博客
执行计划之表连接1:连接树(Join Trees) - 墨天轮

Summary















![[golang gin框架] 32.Gin 商城项目- 支付宝支付操作相关功能讲解](https://img-blog.csdnimg.cn/img_convert/dae21b959a359793e85120aeb1a627f2.png)



![[一篇读懂]C语言十二讲:栈与队列和真题实战](https://img-blog.csdnimg.cn/52deffe5140d4d538cedf803d000e167.png#pic_center)
