Oracle 复合索引设计原理——前缀性和可选性

Posted 王.小辉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 复合索引设计原理——前缀性和可选性相关的知识,希望对你有一定的参考价值。

前缀性:

复合索引的前缀性是指只有当复合索引的第一个字段出现在SQL语句的谓词条件中时,该索引才会被用到。
如复合索引为(ename,job,mgr),只要谓词条件中出现第一个字段ename,就可以用复合索引,否则不会用。
唯一的例外是skip scan index,就是如果Oracle发现第一个字段的值很少,会自动拆分为两个复合索引。如复合索引(gender,ename,job,mgr),因为第一个字段gender只有两个值:男和女,因此Oracle会将这个索引拆分成(‘男‘,ename,job,mgr)和(‘女‘,ename,job,mgr)两个复合索引,这样即使gender没有出现在谓词条件中,也可以用该复合索引。

可选性:

Oracle建议复合索引应按字段可选性(即值的多少)的高低进行排列,这是因为,字段值越多,可选性越强,定位的记录就越少,查询效率就越高。



以上是关于Oracle 复合索引设计原理——前缀性和可选性的主要内容,如果未能解决你的问题,请参考以下文章

索引第二篇:MySQL索引加快查找速度的内部原理刨析

深入浅析Mysql联合索引最左匹配原则

Mysql联合索引最左匹配原则

ORACLE 窥视索引内部结构(上)

MySQL 最左前缀(Leftmost Prefix) & 组合索引(复合索引,多列索引)

索引失效原因总结