PawSQL优化 | 投影下推重写优化功能升级!

投影下推:减少资源,提升性能

投影下推是一种SQL重写优化技术,它通过移除在外部查询中未使用的列,来优化数据库查询。这不仅减少了IO和网络的负担,还提高了优化器在规划表访问时选择无需回表的优化选项的可能性。 

想象一下这个SQL示例:

SELECT count(1) 
FROM ( 
    SELECT c_custkey, age 
    FROM customer 
    WHERE age >= 18
) AS t;

经过PawSQL的魔法,它变成了:

SELECT count(1) 
FROM ( 
    SELECT 1 
    FROM customer 
    WHERE age >= 18
) AS t;

看,c_custkeyage这两个列就这样被巧妙地移除了!


功能增强:更灵活,更智能

PawSQL的最新版本对投影下推优化进行了两项重大的功能增强。

1. 派生表的自由

旧策略:如果派生表包含分组查询,投影下推就束手无策。譬如如下SQL,原PawSQL优化引擎无法进行投影下推优化,

SELECT count(1)
FROM ( 
    SELECT date_format(o_orderdate,'yyyy') y, 
        sum(o_totalprice) sump 
    FROM orders o 
    GROUP BY y
) t;

新策略:现在,即使在分组查询中,我们也可以大胆地进行投影下推。

案例:看上面的SQL,现在它也能被优化了!

6e30d19192724d45b629c18038c50a5a.png

2. 由外向内,层层递进

旧策略:随机遍历查询块,导致优化时可能先内后外,效果不佳。

1aa53a712dbb7254338e6da9940acb36.png

新策略:我们从最外层开始,递归地实施投影重写优化,确保内部查询块能够利用到外层的优化成果。

案例:优化前后的对比,可以看到所有的冗余列都被消除了!

511fff63844c6cefc0d8094c02366507.png


PawSQL这一系列对投影下推的增强,让其能够覆盖更多类型的查询场景,充分发挥PawSQL引擎的优化作用。期待您的反馈,PawSQL将持续优化,为大家提供高效、智能的SQL查询优化方案!

PawSQL往期文章精选

SQL审核 | PawSQL的审核规则集体系

高级SQL优化 | 查询折叠

EverSQL向左,PawSQL向右


关于PawSQL

PawSQL专注数据库性能优化的自动化和智能化,支持MySQL,PostgreSQL,Opengauss等,提供的SQL优化产品包括

  • PawSQL Cloud,在线自动化SQL优化工具,支持SQL审查,智能查询重写、基于代价的索引推荐,适用于数据库管理员及数据应用开发人员,

  • PawSQL Advisor,IntelliJ 插件, 适用于数据应用开发人员,可以IDEA/DataGrip应用市场通过名称搜索“PawSQL Advisor”安装。

  • PawSQL Audit,在SQL应用集成阶段,针对DDL/DML类型的SQL审核工具,使用尽量少的审核规则,覆盖尽量全的SQL语法和结构,确保尽量高的审核正确率。

扫码微信关注我们

b1727b14b6f54cb8aa1b3ebef1885fb4.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值