SQL优化 where谓词条件OR优化

1.测试表,及测试语句where条件中OR对应两个字段选择度很高

create table t618 as select * from dba_objects;

select object_name from t618 where (object_id=12043 or DATA_OBJECT_ID=12043) and STATUS='VALID';

2.没有索引情况下,全表扫描逻辑读1238。

3.OR其中一列创建索引,无法使用索引,全表扫描。

SYS@db11g> create index idx_t618_01 on t618(object_id) online;

Index created.

4.OR对应两列同时创建索引,可以使用到两个索引,并CONCATENATION,逻辑读降为7。

SYS@db11g> create index idx_t618_02 on t618(DATA_OBJECT_ID) online;

Index created.

相关推荐
星迹日15 分钟前
MySQL : 数据库和表操作
数据库·mysql·数据类型··
AI学IT19 分钟前
(安全防御)旁挂组网双机热备负载分担实验
运维·服务器·网络
2302_7995257442 分钟前
【Hadoop】如何理解MapReduce?
数据库·hadoop·mapreduce
已是上好佳1 小时前
介绍一下Qt中的事件过滤
java·服务器·数据库
code monkey.1 小时前
【寻找Linux的奥秘】第一章:基础指令
linux·运维·服务器
qziovv1 小时前
Ubuntu通过局域网共享文件夹实现文件夹的连接
linux·运维·ubuntu
rkmhr_sef2 小时前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
炬火初现2 小时前
Etcd的安装与使用
数据库·etcd
IT猿手2 小时前
2025最新群智能优化算法:云漂移优化(Cloud Drift Optimization,CDO)算法求解23个经典函数测试集,MATLAB
开发语言·数据库·算法·数学建模·matlab·机器人
雷渊2 小时前
深入分析理解mysql的MVCC
java·数据库·面试