前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PawSQL 投影下推优化功能大升级!

PawSQL 投影下推优化功能大升级!

作者头像
PawSQL
发布2024-08-20 20:02:20
700
发布2024-08-20 20:02:20
举报

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

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

想象一下这个SQL示例:

代码语言:javascript
复制
SELECT count(1) 
FROM (
  SELECT c_custkey, age 
  FROM customer 
  WHERE age >= 18
) AS t;

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

代码语言:javascript
复制
SELECT count(1) 
FROM (
  SELECT 1 
  FROM customer 
  WHERE age >= 18
) AS t;

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


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

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

1. 派生表的自由

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

代码语言:javascript
复制
SELECT count(1)
FROM (
   SELECT date_format(o_orderdate,'yyyy') y,
   sum(o_totalprice) sump
   FROM orders o
   GROUP BY y
) t;

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

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

2. 由外向内,层层递进

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

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

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


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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PawSQL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 派生表的自由
  • 2. 由外向内,层层递进
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档