news 2026/7/9 15:32:02

in 子查询 or in 子查询改写

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
in 子查询 or in 子查询改写

1、 问题语句

select t1.c1,t1.c2,t1.c3 from t1 where(t1.gid in(select gid from t2 where d1 ='C2')or t1.gid in(select gid from t3 where e1 ='C2'))and(t1.c1 ='C4'or t1.c1 is null)and(t1.c2 liketrim('D4%')or t1.c3 liketrim('E7%'));

计划:

这里的in子查询+or+in子查询做成表达式,无法先过滤,这里in子查询里面的条件过滤性较好,可以利用索引先过滤,之前的文章中有提过or条件可以改写成union all,这里可以考虑改写成union all。

2、改写

select t1.c1,t1.c2,t1.c3 from t1 where(t1.gid in(select gid from t2 where d1 ='C2'union all select gid from t3 where e1 ='C2'))and(nvl(t1.c1,'C4')='C4')and(t1.c2 liketrim('D4%')or t1.c3 liketrim('E7%'));

计划:

这里能够很好的利用索引先过滤,这里能够很好的利用索引先过滤,另外in也可以改写成exists,于是这个改写又有另一种改写方法

select t1.c1,t1.c2,t1.c3 from t1 where exists(select 1 from(select gid from t2 where d1 ='C2'union all select gid from t3 where e1 ='C2')A where t1.gid = A.gid)and(nvl(t1.c1,'C4')='C4')and(t1.c2 liketrim('D4%')or t1.c3 liketrim('E7%'));

计划:

两种改写方法计划一致,性能都提升几十倍。

3、小结

or条件过滤性很好就比较适合做union all,这个例子也是对前面or关联案例的补充。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 13:58:39

Open-AutoGLM部署难题一网打尽,资深架构师亲授文档生成最佳实践

第一章:Open-AutoGLM部署与文档生成概述Open-AutoGLM 是一个基于开源大语言模型的自动化代码文档生成工具,专注于提升开发团队在项目维护与协作过程中的效率。通过集成主流LLM推理框架与静态代码分析技术,Open-AutoGLM 能够解析源码结构、识别…

作者头像 李华
网站建设 2026/7/10 13:58:37

直流电机转速电流双闭环调速系统Matlab/Simulink仿真模型

直流电机双闭环调速系统仿真模型 转速电流双闭环调速系统Matlab/Simulink仿真模型。 内外环均采用PI调节器,本模型具体直流电机模块、三相电源、同步6脉冲触发器、双闭环、负载、示波器模块搭建。 所有参数都已经调试好了,仿真波形完美,可以直…

作者头像 李华
网站建设 2026/7/10 12:09:05

【AI+文娱新突破】:Open-AutoGLM 如何实现毫秒级场次匹配?

第一章:Open-AutoGLM 电影场次查询 Open-AutoGLM 是一个基于自然语言理解与自动化调度的智能查询框架,专为动态场景下的信息检索设计。在电影场次查询这一典型应用场景中,系统能够解析用户以自然语言提出的请求,自动匹配影院、影片…

作者头像 李华
网站建设 2026/7/10 7:29:16

0.1秒响应的预约系统是如何炼成的,Open-AutoGLM核心原理深度解析

第一章:0.1秒响应的预约系统是如何炼成的在高并发场景下,实现亚秒级响应的预约系统需要从架构设计、数据存储到缓存策略进行全方位优化。核心目标是降低延迟、提升吞吐量,并保证数据一致性。异步处理与消息队列解耦 将用户提交预约请求的路径…

作者头像 李华
网站建设 2026/7/10 7:39:14

【Open-AutoGLM电影票自动化秘籍】:手把手教你0代码实现智能购票系统

第一章:Open-AutoGLM智能购票系统概述Open-AutoGLM 是一款基于大语言模型驱动的智能自动化购票系统,旨在解决高并发场景下传统购票流程中响应慢、操作繁琐和验证码识别难等问题。该系统融合自然语言理解、浏览器自动化控制与动态调度算法,实现…

作者头像 李华