TiDB SQL Engine Team:纯手工打磨前沿的优化器和执行引擎|PingCAP 招聘季
“SQL at SCALE”(出自 PingCAP 官网)是我们对 TiDB 的一个精简概括,而我们 TiDB SQL Engine Team 正是负责这 3 个单词中的 “SQL” 部分,其重要性可见一斑。SQL 在数据库中的大致处理流程可以简短概括为查询优化和执行,这期间涉及到 SQL Parser、优化器、统计信息和执行引擎等模块,他们就是 TiDB SQL Engine Team 目前所负责的模块。接下来我会用简短的篇幅向大家介绍 SQL Engine 的背景知识,以及我们在做的事情,面临的挑战等。
关于查询优化
优化器是 SQL 引擎的大脑,负责查询优化。查询优化的主要工作概括起来很简单:搜索可行的执行计划,从中挑一个最好的。但要做好这两件事却是整个分布式数据库中最难的地方。
1979 年 Selinger 发布了 “Access Path Selection in a Relational Database Management System [1]”,正式拉开了 Cost Based Optimization 的帷幕,这篇论文也被视为 CBO 优化器的圣经。在这之后陆续出现了 Starburst [2](1988 年),Volcano Optimizer Generator [3](1993 年)和 Cascades Framework [4](1995 年) 等,每年数据库三大顶会中也能看到不少查询优化相关的论文,整个优化器领域可谓是蓬勃发展。但即使如此,优化器也仍然有很多问题未能得到很好的解决,比如:
Guy Lohman 2014 年在 “Is Query Optimization a “Solved” Problem? [5]” 中详细讲述的 SQL 算子结果集估算的难题。简单来说,要估算某个表需要扫多少行数据比较容易,但是要再估算更上层的 SQL 算子,比如 Join 或者 Join 之后再 Group By 的结果集有多大,这个就很难了。可以想象的是,估算误差会随着层数的增加而被放大,这个放大有时候是数量级的。此外还会出现负负得正的情况:明明估算错了,但是执行计划却是对的,纠正估算误差后,执行计划反而不对了
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中国经济向世界提供“机遇清单” 7904229
- 2 朱元璋换帅照后明孝陵火了 7809767
- 3 水银体温计将禁产 有网友囤货100支 7713439
- 4 2025这些“经济”持续成长壮大 7616091
- 5 近8000吨车厘子来了 7523679
- 6 老人接孙女从认不出到相拥大哭 7427622
- 7 冯提莫自曝癌症复发并转移 7331251
- 8 喜茶600多家店消失 7235661
- 9 美国女子熟睡时被医生男友喂堕胎药 7140118
- 10 寒潮来袭!多地气温将创下半年来新低 7045780







PingCAP
