Oracle数据库中若何挑选符合的索引范例-体系架构[Oracle防范]
本文“Oracle数据库中若何挑选符合的索引范例-体系架构[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
索引就好象一本字典的目录.凭仗字典的目录,我们可以非常疾速的找到我们所需求的条目.数据库也是如此.凭仗Oracle数据库的索引,相关语句可以疾速的定位记录的位置,而没必要去定位整个表.
固然说,在表中能否成立索引,不会影响到Oracle数据库的利用,也不会影响数据库语句的利用.这就仿佛即便字典没有目录的话,用户仍旧可以利用它一样.但是,若字典没有目录,那么不可思议,用户要查某个条目的话,其不得不翻遍整本字典.数据库也是如此.若没有成立相关索引的话,则数据库在查询记录的时刻,不得不去查询整个表.当表中的记录对比多的时刻,其查询效率就会很低.所以,符合的索引,是提高数据库运行效率的一个很好的工具.
不过,并非说表上的索引越多越好.过之而不及.故在数据库计划历程中,还是需求为表挑选一些符合的索引.宁缺勿滥,这是成立索引时的一个遵守尺度.在理论上,固然一个表可以设置无限的索引.但是,数据库管理员需求知道,表中的索引越多,保护索引所需求的开销也就越大.每当数据表中记录有增添、删除、更新改变的时刻,数据库系统都需求对全部索引举行更新.故数据库表中的索引绝对不是多多益善.具体来说,在索引成立上,笔者对大家有以下倡议.
倡议一:在基数小的字段上要擅长利用位图索引.
基数是位图索引中的一个基本的定义,它是指数据库表中某个字段内容中不反复的数值.如在员工信息表中的性别字段,普通就只有男跟女两个值,所以,其基数为2;婚姻情况字段的话,则其只有已婚、未婚、离婚三种状况,其基数就为3;民族一览内也是只有有限的几个值.
关于要查询基数小的字段,如目前用户想查找全部婚姻情况为"已婚"的"女性"时,操纵位图索引可以提高查询的效率.这主如果因为尺度索引是通过在索引中保存排序过的索引列以及对应的ROWID来实现的.若我们在基数小的列上成立尺度索引的话,则其会返回大量的记录.
而当我们在成立位图索引的时刻,在Oracle会对整个表举行扫描,并且会为索引列的每个取值成立一个位图.若内容相同,则在位图上会以一个相同的数字表示.此时,若这个字段的基数对比小的话,则若需求实现对整个字段的查询的话,效率就会非常的高.因为此时,数据库只要位图中数字相同的内容找出来便可.
除了在数据表某列基数对比小的情形下,采取位图索引外,我们常常在一些特别的情形下,也会倡议采取位图索引.最常见的情形是,在Where限制条件中,若我们多次采取AND大概OR条件时,也倡议采取位图索引.因为当一个查询饮用了一些布置了位图索引的列的时刻,这些位图可以很便利的与AND大概Or 运算符操作结合以快速的找出用户所需求的记录.
但是,这里要注意,不是在条件语句中包含运算符的时刻,采取位图索引都可以供应对比高的效率.普通来说,只有AND 大概OR运算符的时刻,位图索引才会对比具有上风.若此时用户采取大于号大概不等于号作为条件语句中的限制条件的时刻,则常常采取尺度索引具有更大的上风.
所以,笔者在数据库设置中,普通只有在三种情形下才采取位图索引.一是列的基数对比小,而有大概需求按照这些字段的内容查找相关的记录;二是在条件语句中,用到了AND大概OR运算符的时刻.除了这两种情形外,最好可以采取其他合适的索引.第三种情形是,需求用到NULL作为查询的限制条件.因为尺度查询普通情形下,会忽视全部的NULL值列.也就是说,若需求查询"全部没有身份证号码"的员工的信息的时刻,尺度索引并不可以起到加快查询速度的作用.此时,就需求采取位图索引.因为位图索引会记录像关的NULL值列信息.
以上是“Oracle数据库中若何挑选符合的索引范例-体系架构[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |