程序员的知识教程库

网站首页 > 教程分享 正文

Oracle索引(oracle索引的作用及原理)

henian88 2024-10-25 11:50:59 教程分享 2 ℃ 0 评论

Oracle索引最主要的作用是提高系统性能,加快查询速度。

索引类型包括B树索引、位图索引、反向键索引、基于函数的索引、簇索引和非簇索引。

这里我主要讲比较常见的B树索引和位图索引。

B树索引是Oracle默认并且最常用的索引。B树是一个多层次、自维护的结构,它包含一个顶层,称为根节点、0到多个中间层、一个底层,底层中包括若干叶子节点。你所建立的索引对应的列的值和rowid会保存在叶子节点中,而根节点和中间节点则是保存着索引页,即最小键值和索引地址,注意的是叶子节点下面的值是排好序的(默认是升序排序)。

位图索引,它既不保存rowid也不保存键值,主要用于在比较特殊的列上创建索引,在oracle中当一个列的所有取值数与表的行数之间的比例小于1%时,就不适合创建B树索引,比如性别、单双数等等,这些就比较适合建立位图索引。

CREATE INDEX命令语法:

CREATE INDEX

CREATE [unique] INDEX [user.]index

ON [user.]table (column [ASC | DESC] [,column

[ASC | DESC] ] ... )

[CLUSTER [scheam.]cluster]

[INITRANS n]

[MAXTRANS n]

[PCTFREE n]

[STORAGE storage]

[TABLESPACE tablespace]

[NO SORT]

Advanced

其中:

schema ORACLE模式,缺省即为当前帐户

index 索引名

table 创建索引的基表名

column 基表中的列名,一个索引最多有16列,long列、long raw

列不能建索引列

DESC、ASC 缺省为ASC即升序排序

CLUSTER 指定一个聚簇(Hash cluster不能建索引)

INITRANS、MAXTRANS 指定初始和最大事务入口数

Tablespace 表空间名

STORAGE 存储参数,同create table 中的storage.

PCTFREE 索引数据块空闲空间的百分比(不能指定pctused)

NOSORT 不(能)排序(存储时就已按升序,所以指出不再排序)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表