《oracle学习笔记-三大索引.ppt》由会员分享,可在线阅读,更多相关《oracle学习笔记-三大索引.ppt(11页珍藏版)》请在三一办公上搜索。
1、索引(index),索引:B树索引(B-Tree index)位图索引(Bitmap index)全文索引(Text index)三种不同类型的索引适用的范围不同。,B树索引,一、B树索引存储结构(工作机制):,B树索引,二、B树索引适用范围:1)主键或者唯一性约束 2)重复度非常低的字段三、B树索引的特性 1)执行效率非常高 2)查询时间基本不受数据量的影响 3)如果重复度非常高的话,使用B-Tree索引还没有全表扫描执行效率高。,B树索引,四、B树索引实例:1)创建索引 create index idx_t on t1(id);2)使用索引 select*from t1 where id=
2、100;五、注意 列上有索引时,不要使用null(id is(not)null),函数(id+1030)和范围(id20)这样的筛选条件。这些条件会在动态采样后,采用全表扫描的方式查询,而不采样索引方式,其它索引类型也一样。,位图索引,一、位图索引存储结构 当一个表上的某个(几个)字段的数值有明显的大量重复时,比如字段是国家、地区、职位、性别等,或者该字段为其它的一些标志性信息(T/F/Q)等等,并且数据量非常巨大时,我们就应该考虑使用位图索引。,位图索引,二、位图索引适用范围 位图索引从Oracle7.3就被引入进来,用来解决B树索引在查询时遇到的一些问题,主要是重复数据导致的查询性能低的问
3、题。三、位图索引特性 1、位图索引适合在索引字段间进行or与and这样的逻辑运算操作。2、位图索引占用的空间比B树索引少的多 3、位图索引不适用于大量的DML操作除select外,因为每个DML操作对应的位图索引键值对应多条数据,修改时键值会被枷锁,如果此时其它用户需要更改这里面的其它数据,就会造成阻塞。四、实例 create bitmap index bitmap_idx_t2 on t2(id);,位图索引,五、注意 位图索引不适合大量或者批量insert/update操作,容易造成死锁,全文索引,一、全文索引存储结构 全文索引适用于语言文字范畴,它的属性和语言位子的属性直接相关,比如字、
4、词、短语等,全文索引就是通过将文字按照某种语言进行词汇拆分,重新将数据组合存储,来达到快速检索的目的,例如 where name like%Tom%。二、适用范围 1、模糊查询 2、数据库空间充足,因为全文索引比较占用空间。三、特性 1、适用于不变的数据,例如历史数据查询等。因为DML操作的新数据是不会在全文索引中包含的。2、由于全文索引不是基于事物的,如果一旦有DML操作时,需要手动重新构建这个全文索引:alter index t_idx rebuild parameters(sync);,全文索引,四、实例 1、创建索引 create index t2_text_idx on t2(name)indextype is ctxsys.context;2、手动重组全文索引 alter index t2_text_idx rebuild parameters(sync);3、使用全文索引 select*from t2 where contains(name,h)0;,全文索引,五、注意 全文索引不适合频繁的insert/update操作,因为需要手动重建索引。update 操作相当于一个delete 和一个insert操作,故update操作也需要手动重组索引。,OVER,