开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

Join下推的性能怎么样?

已解决

Join下推的性能怎么样?

展开
收起
云上静思 2022-07-12 10:47:23 420 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

    这个可以分两部分看,第一是Join下推本身算法的性能,这个依赖于Plan Cache。首先我们会对执行计划做一个参数化,然后根据参数化的SQL,当判定这个查询能够下推,那它后面所有的不同参数的查询到来之后,就可以直接从Plan Cache里面读出来,那就可以下推。

    接下来可能的问题是,当把Join下推到DN上执行,会不会性能就更好?这个对于TP来说的话,大体上是成立的,因为降低网络开销,肯定带来一个RT的缩短。但是对于AP类的查询,有的时候不一定。因为DN的计算资源肯定没有CN多,有的时候把一些AP类的Join下推下去是不太合理的。所以在做这个事情的时候,也有基于这个CBO的判断,CBO本身的代价模型里会去估算一下DN执行这个Join的代价和CN执行这个Join的不同代价。如果下推到DN上代价更高的话,那就会考虑把这个数据拉到CN上来做。

    所以下推性能问题,在TP场景下大多数时候下推都是可以的。如果下推性能不好,也可以通过CBO识别出来,将数据拉回到CN上执行。

    以上内容摘自《PolarDB-X 从入门到实战》电子书,点击https://developer.aliyun.com/ebook/download/7674可下载完整版

    2022-07-12 15:44:07
    赞同 展开评论 打赏

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载