关于sql 查询性能优化的小经验

最近接到一些sql优化的任务。数据库类型:DB2

有一个长sql查询效率低,大概要几十秒,大概查询逻辑如下:

select * from tableA a where exists (select 1 from tableB b where a.id=b.id )

or exists (select 1 from tableC c where a.id=c.id );

tableA ,tableB ,tableC都是大表,数据量大,最终执行时间要几十秒,

但是把or 条件改成 union all 却可以大大提升执行效率,时间降到几秒:

select * from tableA a where exists (select 1 from tableB b where a.id=b.id )

union all

select * from tableA a where exists (select 1 from tableC c where a.id=c.id );

小结:union all 替换 or 条件, 有时候可以提高查询效率。

相关推荐
为码消得人憔悴28 分钟前
Android perfetto - Perfetto 新手入门指南
android·性能优化
郝学胜-神的一滴2 小时前
深入理解OpenGL VBO:原理、封装与性能优化
c++·程序人生·性能优化·图形渲染
福大大架构师每日一题2 小时前
ollama v0.13.2 最新更新详解:Qwen3-Next首发与性能优化
性能优化·ollama
木风小助理2 小时前
子查询与 JOIN 查询性能比较:执行机制与适用场景解析
数据库·sql·mysql
爪洼守门员4 小时前
前端性能优化
开发语言·前端·javascript·笔记·性能优化
zzz大王4 小时前
sql 五十题 26-30
数据库·sql
互联网哪些事情5 小时前
服务器防御 SQL 注入
运维·服务器·sql·sql注入主机
子夜江寒5 小时前
SQL 从基础操作到高级查询
数据库·sql
NaiLuo_455 小时前
MySQL表的约束
数据库·sql·mysql
一颗宁檬不酸6 小时前
Oracle PL/SQL 过程与游标实战分享:马拉松赛事管理系统
数据库·sql·oracle