前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL 优化技术系列: 谓词下推

SQL 优化技术系列: 谓词下推

作者头像
一个会写诗的程序员
发布2021-12-16 11:05:03
1.3K0
发布2021-12-16 11:05:03
举报

将外层查询块的 WHERE 子句中的谓词移入所包含的较低层查询块(例如视图),从而能够提早进行数据过滤以及有可能更好地利用索引。

这在分区数据库环境中甚至更为重要,其原因在于,提早进行过滤有可能减少必须在数据库分区之间传递的数据量。

此优化技术在 SQL 中被称为谓词下推(Predicate pushdown) 。

基本策略是,始终将过滤表达式尽可能移至靠近数据源的位置。

事实主流的数据库基本上都支持这种方式的优化。其原则是在一个查询树中,对于任何选择都尽量早做选择,然后进行一步的处理.可见我们并不需要改写这个sql,优化器会自动去帮我们做这种优化.

如:优化前的SQL:

代码语言:javascript
复制
SELECT * FROM t_student, t_score
WHERE t_score.student_id=t_student.student_id
AND t_score.score_id=2;

谓词下推优化:

代码语言:javascript
复制
SELECT * FROM t_student t1 
right JOIN (
SELECT * from t_score WHERE score_id=2
) t2
ON t1.student_id=t2.student_id;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/9/7 下午,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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