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.

相关推荐
布局呆星14 小时前
云服务器上部署单项目/多项目
运维·服务器
盐焗鹌鹑蛋15 小时前
【Linux】缓冲区
linux·运维·服务器
祈禾15 小时前
Redis三大缓存问题与分布式锁
运维·数据库·redis·笔记·分布式·缓存
Csvn15 小时前
📊 SQL 入门 Day 18:索引原理
后端·sql
DBA小马哥16 小时前
关系型数据库核心概念手册:SQL、事务与存储引擎的技术脉络
数据库·sql
丫头,冲鸭!!!16 小时前
记账网站3-连数据库
数据库·个人开发
灯澜忆梦16 小时前
【MySQL12】进阶篇 | SQL优化
数据库·sql·mysql·性能优化
IvorySQL16 小时前
PostgreSQL 日报|PG18.5 回归测试崩溃问题(8 月 12 日)
大数据·数据库·人工智能·postgresql
ltl16 小时前
学习型查询优化器:Neo、Bao、Balsa 与 LLM-CBO
数据库
ltl17 小时前
持久内存退场之后:ZNS SSD 与下一代非易失内存
数据库