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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 王者荣耀代练封号怎么办 cf淘宝代练封号怎么办 买音乐会的票过期怎么办 十年多年前被怨错拘留了怎么办 与室友关系闹僵怎么办 开庭后被告威胁我们证人怎么办 开车撞了豪车怎么办 我把人撞了全责怎么办 开车撞伤人没钱赔怎么办 开车撞伤无证驾驶人怎么办 开车把人撞伤了只买交强险怎么办 开车撞伤人赔不起怎么办 如果车撞死人了怎么办 给车撞了跑了怎么办 开车把人撞死了怎么办 开车把人蹭了怎么办 驾照被扣54分怎么办? 驾照被扣了12分怎么办 驾驶证丢失后被扣分怎么办 驾照扣了三十分怎么办 一次被扣了12分怎么办 驾照被扣35分后怎么办 我驾驶证扣了6分怎么办 c1驾照被扣6分怎么办 被扣了6分怎么办 今年扣了6分怎么办 驾照分不够扣了怎么办 被扣6分怎么办罚款15 驾照分数扣36分怎么办 驾照12分不够扣怎么办 驾照b证扣分了怎么办 违章18分不够扣怎么办 b2驾驶证扣11分怎么办 驾照一共扣30分怎么办 驾照扣了100分怎么办 驾照扣40多分怎么办 驾照被扣69分怎么办 驾照被扣200多分怎么办 b2驾照扣了分怎么办 驾驶证在外地被冒用怎么办 身份证被冒用办驾照怎么办