Oracle索引

索引是Oracle为提高查询效率而制定的机制,对于大数量数据的查询,索引能够成倍提高查询效率,缩短查询时间。

索引的作用

  • 通过创建唯一索引可以保证数据记录的唯一性
  • 索引可以强制表中的行具有唯一性,从而确保表数据的数据完整性。在创建主键约束时会自动创建主键索引
  • 可以大大提高数据检索速度
  • 可以加速表与表之间的连接
  • 在使用order by和group by子句检索数据时,可以显著减少查询中分组和排序的时间
  • 使用索引可以检索数据的过程中使用优化隐藏器,提高系统性能

索引的创建

在Oracle中,创建索引的方法有三种,第一种为使用SQL Developer工具来创建,第二种是使用语句来创建,第三种是在OEM中使用页面方法来创建。最主要的是知道何时创建索引

何时创建索引

索引一般在那些可能在where子句中使用的列或者连接时以两边相等的形式的某个列上
索引分为唯一索引,不唯一索引,视图索引

  • 唯一索引:不允许具有与索引值相同的行,系统在创建索引时检查是否有重复的键值
  • 不唯一索引:允许有与索引值相同的行
  • 位图索引;该索引比较适合数据差异较小的列,是针对那些数据步经常改动的列

使用语句创建索引

使用create index语句创建索引的语法结构

create [unique|bitmap] index index_name
on table_name
(col [asc|desc])

unique表示唯一索引,bitmap表示位图索引,col表示列名,可以是一列,也可以是多列的组合;asc表示升序,desc表示降序;默认是升序
在单列上创建索引

create  unique index in_customer_id
on customersnew(customer_id)

**在多列上创建索引

create  unique index in_customer_id
on customersnew(customer_id,cust_first_name)

创建索引的主要事项

在一个表中,创建索引需要一定的条件,并不是为某个创建了索引就可以提高整个工作效率,以下归纳了使用索引的注意事项:

  • 建议索引建立在查询较多而DML操作少的表上。最好在创建索引之前,将初始数据装入数据表,否则建表之后直接创建索引,在输入初始数据时,每插入一个记录,都要维护一次索引
  • 在定义唯一索引的列上定义索引,其效果更好;
  • 索引要占用数据库空间,在设计数据库时,需要把索引空间考虑在内
  • 尽量把表和它的索引存放在不同的磁盘上,这样会提高查询速度。

索引的管理

修改索引

修改索引涉及查看索引,重命名,重建索引。修改索引可以使用OEM,SQL Developer工具及命令方式

总结

合理使用索引可以减少磁盘访问的次数,从而大大提高数据库的性能。重点需要知道何时创建索引,以及如何合理的创建索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值