ITPub博客

首页 > 数据库 > 国内数据库 > KunlunBase查询优化(三)排序下推

KunlunBase查询优化(三)排序下推

原创 国内数据库 作者:KunlunDB 时间:2022-01-17 15:30:49 0 删除 编辑

前言


前面2篇文章我们介绍 KunlunBase的查询优化原理和 Project和Filter下推演示( KunlunBase 查询优化(一), KunlunBase查询优化(二)Project和Filter下推),本节讲述排序查询优化之排序下推。


 

一、order by下推


一条含有order的SQL的执行计划在如下生成过程中,Sort被下推到RemoteScan算子里面。


Sort下推的操作是异步方式,指令在各个数据节点并行执行,过滤数据后,将排序后的结果反馈给计算节点,降低了计算节点的负载。

 

 

下面我们来测试查看查询下推的执行计划

 

为支持排序下推,需要在 KunlunBase设置如下如下参数为true:

    set enable_remote_orderby_pushdown=true;

       

    测试语句:

      select c_zip from customer1 order byc_zip;

       

      查看执行计划:  

        explain select c_zip fromcustomer1 order by c_zip;


         

        根据上面的执行计划,RemoteScan在传达了远程排序操作到每一个相关的存储节点,存储节点将结果反馈给计算节点再做Merge Append。

         

        如果关闭排序下推的特性,执行计划会发生变化,排序操作将在计算节点执行。


        演示如下:

          set enable_remote_orderby_pushdown=false;


          排序操作将在计算节点执行:

           

           

          语句的执行过程:语句在计算节点改写后,下发到2个数据节点执行,从计算节点拉取符合条件的值到计算节点排序,排序后反馈给客户端。

           


          二、性能比对

           

          性能比对环境:

           

          复制下方链接登录 KunlunBase在线体验系统:

          zettatech.tpddns.cn:8000/ci/index.php/Main/PGList

           

          在SQL框中输入排序操作的语句,按执行键执行。

           

          左边窗口是 KunlunBase社区版本的执行信息(社区版不支持排序下推操作),右边窗口是 KunlunBase企业版有下推操作的执行信息。

           


          对比可以发现,order by下推后,执行效率提高了(执行时间由4毫秒下降到3毫秒)

          点击阅读原文

          推荐阅读

          KunlunBase架构介绍
          KunlunBase技术优势介绍
          KunlunBase技术特点介绍
          PostgreSQL vs MySQL TPC-H 测试
          Kunlun-Storage vs PostgreSQL OLTP 测试

          END


          来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70011764/viewspace-2852639/ ,如需转载,请注明出处,否则将追究法律责任。

          请登录后发表评论 登录
          全部评论

          注册时间:2021-12-27

          • 博文量
            103
          • 访问量
            31402