【索引】反向索引--条件 范围查询(二)

简介: 当 where 条件中 含有 条件或者 not in 时 走INDEX FAST FULL SCAN 执行计划中的 限制条件 not in 转换为 PHP code:SQL> select object_id from t1 where object_id  1;53519 rows selected.
当 where 条件中 含有 条件或者 not in 时 走INDEX FAST FULL SCAN 执行计划中的 限制条件 not in 转换为
PHP code:

SQL
select object_id from t1 where object_id  1;

53519 rows selected.



Execution Plan

----------------------------------------------------------

Plan hash value711836071

-----------------------------------------------------------------------------

Id  Operation            Name Rows  Bytes Cost (%CPU)| Time     |

-----------------------------------------------------------------------------

|   
SELECT STATEMENT     |      | 53518 |   261K|    29   (4)| 00:00:01 |

|*  
|  INDEX FAST FULL SCANI_ID 53518 |   261K|    29   (4)| 00:00:01 |

-----------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

   
filter("OBJECT_ID"1)



Statistics

----------------------------------------------------------

          
1  recursive calls

        。。。。。。

      53519  rows processed



SQL
select object_id from t1 where object_id not in (45,65,95,32,1,2,5,64,83);

53511 rows selected.

Execution Plan

----------------------------------------------------------

Plan hash value711836071

-----------------------------------------------------------------------------

Id  Operation            Name Rows  Bytes Cost (%CPU)| Time     |

-----------------------------------------------------------------------------

|   
SELECT STATEMENT     |      | 53510 |   261K|    31  (10)| 00:00:01 |

|*  
|  INDEX FAST FULL SCANI_ID 53510 |   261K|    31  (10)| 00:00:01 |

-----------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

   
filter("OBJECT_ID"45 AND "OBJECT_ID"65 AND "OBJECT_ID"95

              
AND "OBJECT_ID"32 AND "OBJECT_ID"64 AND "OBJECT_ID"83 AND

              &
quot;OBJECT_ID"AND "OBJECT_ID"AND "OBJECT_ID"1)
where 条件中含有 = 号 或in 时   走INDEX RANGE SCAN 注意执行计划中的限制条件 in 被转换为 =
PHP code:

SQL
select object_id from t1 where object_id =55 or object_id =65;

Execution Plan

----------------------------------------------------------

Plan hash value3991740069

--------------------------------------------------------------------------

Id  Operation         Name Rows  Bytes Cost (%CPU)| Time     |

--------------------------------------------------------------------------

|   
SELECT STATEMENT  |      |     |    10 |     3   (0)| 00:00:01 |

|   
|  INLIST ITERATOR  |      |       |       |            |          |

|*  
|   INDEX RANGE SCANI_ID |     |    10 |     3   (0)| 00:00:01 |

--------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

   
access("OBJECT_ID"=55 OR "OBJECT_ID"=65)

Statistics

----------------------------------------------------------

          
1  recursive calls

        。。。。。。

          2  row
PHP code:

SQL
select object_id from t1 where object_id in (45,65,95,32,1,2,5,64,83);

8 rows selected.



Execution Plan

----------------------------------------------------------

Plan hash value3991740069

--------------------------------------------------------------------------

Id  Operation         Name Rows  Bytes Cost (%CPU)| Time     |

--------------------------------------------------------------------------

|   
SELECT STATEMENT  |      |     |    45 |     9   (0)| 00:00:01 |

|   
|  INLIST ITERATOR  |      |       |       |            |          |

|*  
|   INDEX RANGE SCANI_ID |     |    45 |     9   (0)| 00:00:01 |

--------------------------------------------------------------------------

Predicate Information (identified by operation id):

---------------------------------------------------

   
access("OBJECT_ID"=OR "OBJECT_ID"=OR "OBJECT_ID"=OR

              &
quot;OBJECT_ID"=32 OR "OBJECT_ID"=45 OR "OBJECT_ID"=64 OR "OBJECT_ID"=65 OR

              &
quot;OBJECT_ID"=83 OR "OBJECT_ID"=95)
目录
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结
MySQL数据库——索引(6)-索引使用(覆盖索引与回表查询,前缀索引,单列索引与联合索引 )、索引设计原则、索引总结
67 1
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库——索引(5)-索引使用(上),验证索引效率、最左前缀法则、范围查询、索引失效情况、SQL提示
MySQL数据库——索引(5)-索引使用(上),验证索引效率、最左前缀法则、范围查询、索引失效情况、SQL提示
41 0
|
10月前
|
SQL Java 关系型数据库
索引操作
索引操作
46 0
|
存储 索引
为什么范围后索引会失效 存储引擎不能使用索引中范围条件右边的列
比如说有三个字段 a b c,建立复合索引a_b_c。此时叶子节点的数据排序后可能为
95 0
|
存储 关系型数据库 MySQL
MySQL中什么是什么是主键索引、联合索引、覆盖索引、索引条件下推及区别
主键索引:它是一种特殊的唯一索引,不允许有空值,一般在建表的时候指定主键,就会创建主键索引,CREATE INDEX不能用来创建主键索引,通常使用ALTER TABLE来代替。
160 0
|
存储 SQL 关系型数据库
什么是索引覆盖?什么是索引下推?
什么是索引覆盖?什么是索引下推?
378 0
什么是索引覆盖?什么是索引下推?
|
关系型数据库 MySQL 开发者
索引分类和建索引命令语句|学习笔记
快速学习索引分类和建索引命令语句
|
SQL 存储 Go