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.

相关推荐
十八旬21 分钟前
苍穹外卖项目实战(day7-1)-缓存菜品和缓存套餐功能-记录实战教程、问题的解决方法以及完整代码
java·数据库·spring boot·redis·缓存·spring cache
linux修理工1 小时前
n1 Armbian OS 24.11.0 noble 安装suricata
linux·运维·服务器
bug攻城狮1 小时前
CentOS 7 出现 “Could not resolve host“ 错误的修复方案
linux·运维·centos
feifeigo1231 小时前
CentOS系统管理:useradd命令的全面解析
linux·运维·centos
こ进制掌控者1 小时前
CentOS 8重启后网卡不见了解决办法
linux·运维·centos
荣光波比1 小时前
Nginx 实战系列(六)—— Nginx 性能优化与防盗链配置指南
运维·nginx·性能优化·云计算
Nightwish51 小时前
Linux随记(二十三 )
linux·运维
要一起看日出2 小时前
MVCC-多版本并发控制
数据库·mysql·mvcc
Hx__2 小时前
MySQL InnoDB 的 MVCC 机制
数据库·mysql
速易达网络2 小时前
ASP.NET MVC 连接 MySQL 数据库查询示例
数据库·asp.net·mvc