关于索引的使用总结:
DDL:CREATE TABLE wn_test (k001 VARCHAR2(4000 ),k002 VARCHAR2( 4000),k003 VARCHAR2(4000 ));
数据量: 1418210
1: WHERE k001 = 'xxx'
2: WHERE k002 = 'xxx'
1,2 :WHERE k001 = 'xxx' AND k002 = 'xxx'
...
TRUE:-- 可以使用索引
FALSE:-- 不可以使用索引
注意: a.WHERE 条件中字段的先后顺序不会影响 SQL的查询效率,1, 2 和 2, 1的执行效果是一样的。
b. 组合索引中的字段顺序会影响到 SQL是否会使用到索引,影响查询效率。
一.单字段索引的使用情况
a.k001
1 TRUE
2 FALSE
2,1 TRUE
b.k001 & k002 ( 两个字段分别建立单字段索引 index1,index2)
1 TRUE index1
2 TRUE index2
1,2 TRUE index1
2,1 TRUE index1
2,3 TRUE index2
总结: WHERE 条件中凡是使用建立过索引的字段,都能使用索引
二.组合索引的使用情况
a.组合为:k001,k002 时
1 TRUE
2 FALSE
1,2 TRUE
b.组合为:k002,k001 时
1 FALSE
2 TRUE
1,2 TRUE
c.组合为:k001,k002,k003 时
1 TRUE
2 FALSE
3 FALSE
1,2 TRUE
1,3 TRUE
2,3 FALSE
1,2 ,3 TRUE
总结:创建组合索引时字段的顺序很关键 ,凡是在 Where 条件中包含组合索引中第一个字段的查询,都能使用索引,反之则不能使用索引。
Oracle索引总结
最新推荐文章于 2022-10-09 15:40:26 发布