Oracle数据库,索引的相关知识

本文详细介绍了Oracle数据库中的索引,包括索引的概念、类型(如B树索引、位图索引、反向键索引和基于函数的索引)、创建与修改索引的方法、删除和查看索引信息的语法,以及何时使用索引的策略。讨论了索引在提高查询速度、支持约束方面的作用,同时强调了创建和使用索引的注意事项。
摘要由CSDN通过智能技术生成

1、索引的概念

1)概念:Oracle数据库中的索引是一种建立在表或簇基础上的数据对象,和表一样具有独立的段存储结构,需要在表空间中为其分配存储空间。

2)作用:可以提高查询表中数据的速度。

2、索引的类型(面试题)

1)B树索引(考点):是应用最广泛的索引,也是Oracle数据库的默认索引类型。B树指的是平衡树(Balanced Tree),它是使用平衡算法来管理索引的。

适合B树索引的场合有:

  • 表中存储的数据行数很多。
  • 列中存储的数据的不同值很多。
  • 查询的数据量不超过全部数据行的5%,否则应使用全表扫描。

2)位图索引:当要建立索引列的数据有大量的重复值时,如果在其上建立了B树索引,则那么叶块中就会存储大量相同的索引列值,反而会降低查询的速度。这种情况下就应该使用位图索引。

每一个索引列值都存储一个位图,该位图由二进制位组成。

3)反向键索引:是一种B树索引,它在物理上反转索引的列值,但是列的顺序保持不变。反向键索引通常建立在值是连续增长的列上,使数据均匀地分布在整个索引上,其目的是为了解决叶块争用问题。

l对于创建反向键索引的列,在执行查询操作时,Oracle数据库会自动将查询条件反转以与反向键索引匹配。如果在WHERE子句中使用范围查询条件,比如BETWEEN、<、>等,由于索引值被反转,不会按照原来的排序进行查询,查询时必须执行全表扫描,因此建立反向键索引的列不适合用于范围查询。

4)基于函数的索引:基于函数的索引会先对列的函数或表达式进行计算然后将计算的结果存入索引中。创建这种类型的索引时需要注意一下几点:

  • 创建时必须具有 QUERY REWRITE系统权限。
  • 表达式中不能出现聚合函数。
  • 不能在LOB类型的列上创建。

5)唯一索引和非唯一索引(考点)

如果根据索引值是否可以相同,可以将索引分为唯一索引和非唯一索引。和唯一约束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值