博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6.1(续)索引、索引组织表--Oracle模式对象
阅读量:5898 次
发布时间:2019-06-19

本文共 1518 字,大约阅读时间需要 5 分钟。

索引的基本概念:

(1).要理解索引,可以把书作为一个模型类比。一本书里的内容,相当于一张大表存储的数据,而书前面的目录就相当于这个表的索引;

(2).索引可以拥有独立的存储磁盘空间;

(3).索引占用的磁盘空间要比表小的多,其主要作用是为了加快对数据的搜索速度;

(4).同时可以保证数据的唯一性。

 

索引的类型:可分为B树索引(B-Tree)位图索引(bitmap)反向键索引(reverse)基于函数的索引

 

B树索引(B-Tree)

树形结构,每个叶子节点中都包括索引列的值和记录行对应的物理地址ROWID(键值ROWID)

采用B树索引可以确保无论索引条目位于何处,Oracle都需要花费相同的I/O就可以获取它。

--例如:1001 rowid

--创建普通索引

create index employee_ix_ename on employee(ename);

--创建唯一索引

create unique index employee_UQ_eid on employee(eid);

--创建符合索引

create index employee_ix_ns on employ(ename,esex);

 

--注意:符合索引中的列,通常将在查询语句的where子句中经常使用的列放在前面。

 

位图索引(bitmap)

基数较小,且基数相对稳定的列建立索引时,首先考虑位图索引;

--例如:“性别”列的取值一般只有男、女,类似这样的列基数稳定且较小。

create bitmap employee_ix_esex on employ(esex);

 

反向键索引(reverse)

也叫翻转索引,是一种特殊的B树索引,适用于在含有序列数的列上创建。

--例如:索引键为2009,反向键索引将其翻转成9002.

create index employee_ix_eid on employee(eid) reverse;

 

基于函数的索引:

常用与UPPER、LOWER、TO_CHAR(date)等函数分类上

--创建基于to_char()的函数索引

create index employee_ix_func on employee(to_char(edate,'yyyy-mm-dd'));

 

管理索引:合并、重建、监视、删除

随着表不断更新,插入、更新数据,表的索引会产生越来越多的存储碎片,这会影响索引的使用效率。

--合并索引,释放空间

alter index employee_ix_ename coalesce deallocate unused;

 

--重建索引,实际上是在表空间中重新建立一个新的索引,然后删除原来的索引

alter index employee_ix_ename rebuild;

 

--监视索引,打开索引的监视状态后,可查看V$object_usage

----打开

alter index employee_ix_ename monitoring usage;

----关闭

alter index employee_ix_ename nomonitoring usage;

 

--删除索引

Drop index employee_ix_ename;

 

 

索引组织表(Index Organized Table,IOT)

不像普通的表直接采用堆组织方式将记录无序地存放在数据段中;

而采用类似B树索引的索引组织方式将记录按照某个键列进行排序后,再以B树方式存在数据段中。

 

转载于:https://www.cnblogs.com/jionjionyou/p/5533017.html

你可能感兴趣的文章
Java中为什么需要Object类,Object类为什么是所有类的父类
查看>>
css3 -webkit-flex 布局
查看>>
大数据Benchmark
查看>>
windows server2008多用户远程登陆设置方法
查看>>
sencha touch巧妙使用请求超时提升用户体验
查看>>
15. 3Sum
查看>>
ArrayList源码解析
查看>>
基于SpringMVC、Maven以及Mybatis的环境搭建
查看>>
angularjs-paste-upload
查看>>
RXjs相关
查看>>
linux基础命令 head
查看>>
objective c:import和include的区别, ""和<>区别
查看>>
spring SchedulerFactoryBean 没有创建 Scheduler的实现类bea
查看>>
基于cobbler实现自动化安装系统
查看>>
The Shared folder with you
查看>>
BodyPaint__操作步骤
查看>>
poj 2234 Matches Game
查看>>
2018年全国多校算法寒假训练营练习比赛(第五场)
查看>>
sax方式解析XML学习笔记
查看>>
Springboot配置(上)
查看>>