参考:
https://zhuanlan.zhihu.com/p/636419952
Join Reorder的问题可以描述为给定一条多表Join的SQL,输出一个最优的Join顺序,使得查询性能最优。
主要内容:
基本概念
Query Graph
Join Tree
Join Cardinality
Join Cost
常见Join Reorder算法
可以分为两类:
贪心启发式算法,因为速度很快,此类算法适合Join数目较多的情况。
全枚举算法,适合Join数目较少的情况。
一般数据库都会根据Join数目,使用这两大类的算法在优化时间和搜索空间大小上取得平衡。