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.

相关推荐
skyyx20026 分钟前
写给网工新手:子网掩码基本概念和一些计算方法
运维·网络
Hello.Reader25 分钟前
Flink SQL 的 LOAD MODULE 深度实战——加载 Hive 模块、理解模块发现与常见坑
hive·sql·flink
大猫和小黄28 分钟前
若依微服务全面适配PostgreSQL-OpenGauss数据库
数据库·微服务·postgresql·若依
老徐电商数据笔记35 分钟前
技术复盘第二篇:电商数据主题域划分企业级实践
大数据·数据库·数据仓库·零售·教育电商·技术面试
jfqqqqq36 分钟前
postgres查询、重设自增序列的起始值
数据库·sql·postgres·自增序列
杰克崔42 分钟前
进程内mmap锁相互干扰问题
linux·运维·服务器·车载系统
1 小时前
TIDB——PD(placement Driver)
java·数据库·分布式·tidb·
DemonAvenger1 小时前
Redis与MySQL双剑合璧:缓存更新策略与数据一致性保障
数据库·redis·性能优化
2501_924064111 小时前
2025年一站式测试平台对比:可视化报告与自动化监控最佳实践
运维·自动化
断春风1 小时前
如何避免 MySQL 死锁?——从原理到实战的系统性解决方案
数据库·mysql