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

相关推荐
lifejump35 分钟前
Pikachu | SQL-inject
数据库·sql
lkbhua莱克瓦243 小时前
进阶-SQL优化
java·数据库·sql·mysql·oracle
石小千3 小时前
Myql binlog反向解析成sql
数据库·sql
前端_yu小白4 小时前
react常用优化手段
前端·javascript·react.js·性能优化·usecallback·usememo
卓码软件测评4 小时前
软件首版次认定测试机构:【Apifox与UMI框架结合:实现OpenAPI规范与Mock服务的自动化流水线】
测试工具·ci/cd·性能优化·单元测试·测试用例
前端大波4 小时前
使用webpack-bundle-analyzer 对 react 老项目进行打包优化
前端·react.js·webpack·性能优化
摩西蒙5 小时前
阿里云 MaxCompute(原 ODPS)定时任务查询库存快照场景
java·大数据·sql·database
鲨莎分不晴5 小时前
给 Hadoop 插上 SQL 的翅膀:Apache Hive 架构与实战全解
hadoop·sql·apache
萧曵 丶6 小时前
覆盖索引与回表(MySQL 索引核心概念,性能优化关键)
数据库·mysql·性能优化·索引·聚簇索引