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.

相关推荐
Wang's Blog7 小时前
Go-Zero项目开发5: 数据库与缓存一致性问题及 go-zero 缓存机制解析
数据库·缓存·golang
布朗克1687 小时前
Go 入门到精通-18-文件操作
java·数据库·golang
ShoreKiten8 小时前
SQL注入之SQL Server增删改查
数据库·sql
Mico188 小时前
MySQL 8.0.35 源码编译安装笔记
数据库·笔记·mysql
蚰蜒螟8 小时前
从 Jedis 到内核:深入剖析 Redis BRPOP 的阻塞与唤醒机制
数据库·redis·缓存
MMendex8 小时前
Nginx_day4——uWSGI,灰度发布,网站限流限速,Nginx跨域
运维·nginx
小小测试开发8 小时前
RAG检索评测实战:9种架构对比与自动化评估框架搭建
运维·人工智能·python·自动化
zzz_23688 小时前
智慧社区项目全维度测试报告:功能、接口、自动化与性能验证
运维·自动化
Brilliantwxx8 小时前
【Linux】基础指令
linux·运维·服务器
微露清风9 小时前
浅析 MySQL 索引
android·数据库·mysql