关于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 条件, 有时候可以提高查询效率。

相关推荐
此刻你6 分钟前
常用的 SQL 语句
数据库·sql·oracle
山岚的运维笔记2 小时前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver
David凉宸3 小时前
Vue 3 项目的性能优化策略:从原理到实践
前端·vue.js·性能优化
中二病码农不会遇见C++学姐4 小时前
SQLiteStudio 下载安装指南
sql
一碗面4214 小时前
SQL性能优化:让数据库飞起来
数据库·sql·性能优化
June bug4 小时前
【高频SQL基础版】排序和分组
数据库·sql
怣505 小时前
MySQL多表连接完全指南:内连接与外连接超详细讲解
数据库·sql·mysql
Bruk.Liu7 小时前
(LangChain实战12):LangChain中的新型Chain之create_sql_query_chain
数据库·人工智能·sql·langchain
2501_901147838 小时前
学习笔记:基于摩尔投票法的高性能实现与工程实践
笔记·学习·算法·性能优化
露天赏雪9 小时前
JDK8 的入门避坑指南
java·服务器·windows·spring boot·后端·spring·性能优化