Runtime Filter
从纸面意义来看,就是程序在运行时,根据实际的数据去进行一些过滤操作。这和静态的规则优化不同,静态优化不考虑实现的数据的分布。
示例
select a.* ,b.*
a
join
b
on a.id=b.id
- 假设一下数据的分布情况,表b只有一个id=1 的记录,表a有10w条记录,没有此优化的话,
会导致把表a的记录全部查出来,cost 的资源比较多,如果可以得到数据表b 的实际分布,把表数据的信息push down 到源码数据scan,可以极大的提高程序的运行效率。减少资源的占用
