ORACLE三大索引适用范围

来源:互联网 发布:st8单片机 编辑:程序博客网 时间:2024/05/22 02:30

郑重声明:由于本人水平有限,如有不对的地方请大神指正不甚感激(327568824@qq.com)

ORACLE中支持三种索引类型,本文内容只涉及三种索引的适用范围,而不涉及具体使用方法,如果需要查看后序文章

B-Tree索引:B-Tree索引

位图索引:位图索引

  1. B树索引(B-Tree index)
                  适用范围:1)OLTP系统中

                                      2)主键、唯一性约束

                                      3)重复度非常低的字段
                   不适用范围:重复度非常高的字段
                   特性:1)执行效率非常高
                              2)查询时间基本不受数据量的影响
                              3)如果重复度非常高,使用B-Tree索引还没有全盘扫描效率高

  2. 位图索引(Bitmap index)
                 适用范围:1)OLAP系统中
                                   2)主要是重复数据导致的查询性能低的问题,用来弥补B-Tree性能低的问题
                                   3)使用OR\AND这类逻辑操作
                 不适用范围:大量DML操作、重复率较低的字段
                  特性:1)适合在索引字段间进行OR\AND这类逻辑运算
                             2)位图索引占用的空间比BTree索引用的少的多
                             3)位图索引不适用于大量的DML操作(除select外),因为每个DML操作对应的位图索引键值对应多条数据,修改时键值会被上锁,如果此时其他用户需要更改数据,就会造成阻塞。
  3. 全文索引(Text index)
                 适用范围:1)模糊查询
                                   2)数据库空间种族,因为全文索引比较占用空间
                                   3)语言文字范畴
                 不适用范围:全文索引占用大量的空间,不适合在硬盘资源紧张的库中(原数据的1.5倍)
                                       BUG比较多,维护困难
                         特性:1)适用于不变的数据,因为DML的新数据,不会在全文索引中包含
                                    2)由于全文索引不是基于事物的,一旦有DML,就需要重新构建这个全文索引:alter index t_idx rebuild parmeters('sync');
                 







0 0
原创粉丝点击