王润基-⽤ egg 孵化你的 SQL 优化器.pdf

编号:132103 PDF 39页 6.48MB 下载积分:VIP专享
下载报告请您先登录!

王润基-⽤ egg 孵化你的 SQL 优化器.pdf

1、第三届中国Rust开发者会 egg 孵化你的 SQL 优化器王润基 RisingWave 内核开发程师ParserBinderOptimizerExecutorSQLASTLogical PlanPhysical PlanTableCatalogStorageRisingLight 查询引擎的整体结构SELECT name,url FROM t1 JOIN t2 WHERE t1.id=t2.id AND name=BobSQLLogical PlanPhysical PlanProjection name,urlFilter t1.id=t2.id name=“Bob”JoinScan t1

2、(id,name)Scan t2(id,url)Filter#1=“Bob”Hash Join#0=#2Scan$1.1,$1.2Scan$2.1,$2.2Projection#1,#3个 SQL 语句优化的例基于规则的优化(RBO)基于代价的优化(CBO)谓词下推JoinFilterABJoinFilterABFilterJoinAJoinBCJoinCJoinABJoinHash JoinSort-merge JoinNested Loop Join连接重排序连接算法选择TopNAOrderTopNALimit查询优化定义计划节点定义重写规则纯 Rust 编写的第代优化器Visitor 模

3、式纯 Rust 编写的第代优化器e-classe-nodeRewritingRewriting(*?x 2)=(Equality Saturation (*?x 2)=(*?x(/?y?z)(/?x?x)=1 (*?x 1)=?xEquality Saturation (*?x 2)=(*?x(/?y?z)(/?x?x)=1 (*?x 1)=?x SaturationEquality Saturation (*?x 2)=(*?x(/?y?z)(/?x?x)=1 (*?x 1)=?x Saturation Extraction(/(*a 2)2)=aAnalysisSome(1)Some(2)

4、NoneNoneNoneConstant AnalysisAnalysisSome(1)Some(2)NoneNoneConstant FoldingSome(3)NoneSome(6)Some(3)3SELECT name,url FROM t1 JOIN t2 WHERE t1.id=t2.id AND name=Bob(proj(list$1.2$2.2)(filter(and(=$1.1$2.1)(=$1.2“Bob”)(join inner true (scan$1(list$1.1$1.2)(scan$2(list$2.1$2.2)定义语构造表达式2+xy+*定义规则:表达式化简定

5、义规则:算化简JoinFilterABJoinFilter aABJoin ABa&b&cJoinFilter aABFilter bcb&c(filter(and(=$1.1$2.1)(=$1.2“Bob”)(join inner true (scan$1(list$1.1$1.2)(scan$2(list$2.1$2.2)(join inner(=$1.1$2.1)(filter(=$1.2“Bob”)(scan$1(list$1.1$1.2)(scan$2(list$2.1$2.2)定义规则:谓词下推分析:Column Analysis(join inner(and(=$1.1$2.1)

6、(=$1.2“Bob”)(scan$1(list$1.1$1.2)(scan$2(list$2.1$2.2)$1.1,$2.1$1.2$1.1,$1.2$2.1,$2.2表达式节点:到的所有列算节点:输出的所有列Hash Join L_key:A.id,A.id R_key:B.id,C.id Join A.id=C.id AND B.id=C.idCABJoinJoin A.id=C.idCABJoinJoin B.id=C.idABCHash Join A.id=C.idHash Join B.id=C.idABCcost=N2+2Ncost=2N+

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(王润基-⽤ egg 孵化你的 SQL 优化器.pdf)为本站 (2200) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠