oracle 复合索引
来源:互联网 发布:网上约车软件 编辑:程序博客网 时间:2024/05/16 01:22
复合索引原理:
1、前缀性(prefixing)
即按照复合索引创建时包含字段的顺序分别依次排序,如在(a,b,c)列上创建了复合索引,那么该复合索引在oracle数据库索引树上就会先按a排序,再按b排序,最后按c排序。
如
a b c
河南 洛阳 伊川
河南 洛阳 偃师
河南 洛阳 洛宁
河南 洛阳 宜阳
河南 洛阳 汝阳
河南 洛阳 栾川
······
oracle不是智能的,它只能按图索骥,该索引先按a排序,那么只要给出a列的值,就会走索引。相反,如果给出了c值或者b值(即没有a的值),那么oracle就会乱找,变成全表扫描。
但是也有一种情况是例外,那就是skip scan index。
如果oracle发现第一个字段值很少的情况下,例如假设emp表有gender(性别)字段,并且建立了(gender,ename,job,mgr)复合索引.因为性别只有男和女,所以为了提高索引的利用率,oracle可将这个索引拆成('男',ename,job,mgr),('女',ename,job,mgr)两个复合索引.这样即便没有gender条件,oracle也会分别到男索引树和女索引树进行搜索.
但是,(gender,ename,job,mgr)索引本身设计是不合理的,它违背了复合索引的第二个原理。
2、可选性(selectivity)
oracle 建议按字段可选性高低进行排序,即字段值多(重复的数目少的,如id)的排在前面。这是因为字段值越多可选性就越强,定位的数据记录就越少,查询效率就越高。
0 0
- oracle中的复合索引
- oracle 复合索引
- ORACLE复合索引
- Oracle 复合索引
- oracle索引 一复合索引
- ORACLE复合索引使用 注意事项
- Oracle 复合索引的理解
- oracle复合索引介绍(多字段索引)
- oracle复合索引以及逆序索引
- oracle索引(包括复合索引)
- oracle的索引使用:复合索引中的前导索引
- 【Oracle】含常数的复合索引
- oracle中创建复合索引方法
- 复合索引
- 复合索引
- 复合索引
- 复合索引
- 复合索引
- php实现工厂模式&单例模式&魔术方法&获取文件扩展名
- InnoDB与Myisam的六大区别
- MySQL InnoDB之事务与锁详解
- Android SDK Manager 下载缓慢解决办法
- js prototype原形
- oracle 复合索引
- LeetCode 009 Palindrome Number
- 网站开发-php开发手机论坛(9)-分页显示评论
- uva 1156 - Pixel Shuffle(模拟+置换)
- linux理论基础
- nginx域名配置
- 实用make最佳实践(精)
- js
- maven 整合struts2,mybaitis,spring使用drudi数据源