Oracle数据库中索引的基本使用

目录

1.索引的作用

2.索引的分类

3.使用索引原则

(1)原则一

(2)原则二

(3)原则三

(4)原则四

(5)原则五

(6)原则六

4.创建,维护和删除索引

(1)可视化的方式

(2)命令行的方式

(3)维护索引

(4)删除索引


Oracle学习的相关知识点(汇总)

1.索引的作用

索引主要用于快速查找每一行的数据库结构:

  • 快速存取数据;
  • 既可以改善数据库性能,又可以保证列值的唯一性;
  • 实现表与标之间的参照完整性;
  • 在使用order by子句,group by子句进行数据库检索时,利用索引可以减少排序和分组的时间。

2.索引的分类

  • 按照存储方法进行分类
    • B*树索引
      • B*树索引的存储结构类似图书的索引结构,有分支和叶块两种类型,其中分支相当于大目录,叶块相当于索引到具体的页;
    • 位图索引
      • 主要用来节省空间,减少Oracle系统对数据块的访问;
  • 按照功能和对象进行划分
    • 唯一索引
      • 意味着不会有两行相同的记录的索引值;如果要建立唯一索引,必须设置关键字,并且建立唯一索引的表只能按照该唯一索引结构排序;
    • 非唯一索引
      • 也就是不对索引列的值进行唯一性限制
    • 分区索引
      • 索引可以分散的存在于多个不同的表空间,优点是能够提高数据查询效率;
    • 未排序索引(正向索引)
      • 创建索引时不必指定对其排序,使用默认的排序即可;
    • 逆序索引(逆向索引)
      • 保持索引列按顺序排序,但是颠倒了已索引的每一列字节;
    • 基于函数索引
      • 索引中的一列或者多列是一个函数或者表达式

3.使用索引原则

正确使用索引对于提高检索效率非常的重要。

(1)原则一

在表中插入数据之后再创建索引。也就是在表中插入数据之后,创建索引的效率会更加的高。如果在装载数据之前创建索引,那么每插入一行数据,Oracle系统都必须更改索引。

(2)原则二

索引正确的表和列。也就是如果经常检索的聂荣少于表中数据的15%行,就需要创建索引。为了改善多个表的相互关系,使用索引列进行关系连接。

(3)原则三

合理安排索引列。也就是在create index语句中,列的排序会影响查询的功能,通常将最常用的列放在前面。

(4)原则四

限制表中索引的数量。也就是尽管表可以有任意数量的索引,但是索引越多,在修改表中的数据时对索引进行相应的更改工作量也越大,效率也越低。

(5)原则五

指定索引数据块空间。创建索引时,索引数据块是用表中现存值填充的,达到pctree时为止。

(6)原则六

根据索引大小设置存储参数。创建索引之前应该先估计索引的大小,以便更好地规划和管理磁盘空间。

4.创建,维护和删除索引

(1)可视化的方式

 

  

(2)命令行的方式

CREATE [UNIQUE∣BITMAP] INDEX /*索引类型*/
[<用户方案名>.]<索引名>
ON <表名>(<列名> | <列名表达式> [ASC∣DESC] [,…n])
[LOGGING | NOLOGGING] /*指定是否创建相应的日志记录*/
[COMPUTE STATISTICS] /*生成统计信息*/
[COMPAESS | NOCOMPRESS] /*对复合索引进行压缩*/
[TABLESPACE <表空间名>] /*索引所属表空间*/
[SORT | NOSORT] /*指定是否对表进行排序*/
[REVERSE]

说明:

  • UNIQUE:指定索引所 基于的列(或多列)值 必须唯一。默认的索引 是非唯一索引。Oracle 建议不要在表上显式定 义UNIQUE索引。
  • BITMAP:指定创建位图索引而不是 B*索引。位图索引保存的行标识符 与作为位映射的键值有关。位映射 中的每一位都对应于一个可能的行 标识符,位设置意味着具有对应行 标识符的行包含该键值。
  • <用户方案名>:表示包含索 引的方案。若忽略则Oracle 在自己的方案中创建索引。
  •  ON子句:在指定表的列中 创建索引,ASC和DESC分别 表示升序索引和降序索引。
  • <列名表达式>:用指定表的列、 常数、SQL函数和自定义函数创 建的表达式,用于创建基于函数 的索引。指定列名表达式以后用 基于函数的索引查询时,必须保 证查询该列名表达式不为空。
  • LOLOGGING | NOLOGGING:LOGGING 选项规定在创建索引时, 创建相应的日志记录, NOGGING选项则表示创建 索引时不产生重做日志信 息,默认为LOGGING。
  • COMPUTE STATISTICS:COMPUTE STATISTICS选项表示在创建索引时 直接生成索引的统计信息,这样可 以避免以后对索引进行分析操作。
  • COMPAESS | NOCOMPRESS:对 于复合索引,如果指定了 COMPRESS选项,则可以在创建 索引时对重复的索引值进行压缩, 以节省索引的存储空间,但对索 引进行压缩后将会影响索引的使 用效率,默认为NOCOMPRESS。
  • SORT | NOSORT:默认情况下,Oracle在 创建索引时会对表中的记录进行排序,如 果表中的记录已经按照顺序排序,可以指 定NOSORT选项,这样可以省略创建索引 时对表进行的排序操作,加快索引的创建 速度。但若索引列或多列的行不按顺序保 存,Oracle就会返回错误,默认为SORT。
  • REVERSE:指定以反序索引块的 字节,不包含行标识符。 NOSORT不能与该选项一起指定。

(3)维护索引

 

ALTER INDEX [<用户方案名>.]<索引名>
[LOGGING | NOLOGGING]
[TABLESPACE <表空间名>]
[SORT | NOSORT]
[REVERSE]
[RENAME TO <新索引名>]

(4)删除索引

DROP INDEX [<用户方案名>.]<索引名>

猜你喜欢

转载自blog.csdn.net/Keep_Trying_Go/article/details/127539253
今日推荐