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.

相关推荐
Jewel Q1 分钟前
防火墙NAT策略处理流程
运维·服务器·网络
123461612 分钟前
互联网大厂Java面试:从Spring Boot到微服务的探索
java·数据库·spring boot·微服务·面试·mybatis·orm
失重外太空啦5 分钟前
NFS服务器的搭建
运维·服务器·网络
一 乐18 分钟前
农产品销售系统|农产品电商|基于SprinBoot+vue的农产品销售系统(源码+数据库+文档)
java·javascript·数据库·vue.js·spring boot·后端·农产品销售系统
Jonathan Star24 分钟前
网站识别爬虫(包括以浏览器插件形式运行的爬虫)主要通过分析请求特征、行为模式等差异来区分人类用户和自动化程序
运维·爬虫·自动化
Once_day28 分钟前
Linux错误(7)接口处于Down状态不通告IPv6地址变更事件
linux·运维·服务器
Bruce_Liuxiaowei29 分钟前
SMB签名关闭的安全风险探讨
运维·windows·安全·网络安全
攀小黑31 分钟前
docker 容器内nacos(若依plus打包)连接另一台内网服务器显示数据库连接失败
服务器·数据库·docker
七月稻草人40 分钟前
Rust 与数据库连接池的集成:安全与性能的深度耦合
数据库·安全·rust
Andy41 分钟前
Mysql基础2
android·数据库·mysql