oracle之初识索引

什么是索引

索引是一种数据库对象,她是基于表中的一个趔或多个列的值,提供对表进行快速访问的一种访问机制。索引的目的在于提高读取数据的速度。

通俗来讲索引就像是一本数据目录,如果通过目录来查找自己想要找的内容是很快的,但是如果一本书没有目录,在这种情况下需要找到想要的内容就需要将整本书翻一遍,效率极其低下。

索引的类型

按照存储方式划分

按照存储方式可以将索引分为
1)B树索引
2)位图索引
3)反向键索引

按照索引列的唯一性划分

1)唯一索引
2)非唯一索引

按照索引列的个数划分

1)单列索引
2)复合索引

索引的作用

如果一个表中存在海量的数据,当对表执行指定条件查询时,常规的查询方法会通过全表扫描的方式与查询条件进行对比,最后返回满足条件的记录。这样进行操作的时间开销和I/O开销非常大。这种情况下就可以考虑通过建立索引的方式来减少系统开销。
然而索引并不只会带来便利,相反,如果使用不当他反而会带来弊端

索引的优点:

通常情况下我们使用索引的目的是提高查询效率,这也是索引存在一大意义

索引的缺点:

如果表中的数据量很小,或者有某个字段会频繁的被修改,此时我们建立索引并不会给性能带来提升。
因为索引真是存在的,它需要占用内存,如果表的数据量很小,只需要全表扫描就可以了,而不需要分配额外的存储空间存储索引。
如果表中的某些字段频繁进行修改,但在这些字段上建立了索引,会影响表更新的效率,因为随着表字段的修改,那么索引会随着修改,这势必会影响性能。
简单讲:
创建需要花时间
需要额外的存储空间
每次修改数据,索引都需要更新
维护索引需要时间和资源,不应创建不会频繁使用的索引

在使用索引的技巧

1)频繁在where字句中使用的字段。
2)经常需要基于某列或某几个列执行排序操作,那么在这些列上建立索引可以加快数据排序速度
3)限制表索引的个数。索引主要用于加快查询操作,但会降低DML操作的速度。索引越多,DML操作速度越慢,尤其会极大的影响INSERT和DELETE操作的速度。
4)不要在小表上建立索引
5)为了提高多表连接的性能,应该在连接列上建立索引
6)将表和索引部署到相同表空间,可以简化表空间的管理。将表和索引部署到不同表空间,可以提高访问性能。(因为内部可以并行访问表和索引)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值