oracle学习笔记--三大索引.pptx
文本预览下载声明
索引(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=100;
五、注意
列上有索引时,不要使用null(id is (not) null),函数(id+1030)和范围(id20)这样的筛选条件。这些条件会在动态采样后,采用全表扫描的方式查询,而不采样索引方式,其它索引类型也一样。
位图索引
一、位图索引存储结构
当一个表上的某个(几个)字段的数值有明显的大量重复时,比如字段是国家、地区、职位、性别等,或者该字段为其它的一些标志性信息(T/F/Q)等等,并且数据量非常巨大时,我们就应该考虑使用位图索引。
位图索引
二、位图索引适用范围
位图索引从Oracle7.3就被引入进来,用来解决B树索引在查询时遇到的一些问题,主要是重复数据导致的查询性能低的问题。
三、位图索引特性
1、位图索引适合在索引字段间进行or与and这样的逻辑运算操作。
2、位图索引占用的空间比B树索引少的多
3、位图索引不适用于大量的DML操作除select外,因为每个DML操作对应的位图索引键值对应多条数据,修改时键值会被枷锁,如果此时其它用户需要更改这里面的其它数据,就会造成阻塞。
四、实例
create bitmap index bitmap_idx_t2 on t2(id);
位图索引
五、注意
位图索引不适合大量或者批量insert /update操作,容易造成死锁
全文索引
一、全文索引存储结构
全文索引适用于语言文字范畴,它的属性和语言位子的属性直接相关,比如字、词、短语等,全文索引就是通过将文字按照某种语言进行词汇拆分,重新将数据组合存储,来达到快速检索的目的,例如 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
显示全部