索引

简介: 一、概述 数据库中索引(Index)的概念与目录的概念非常类似。如果某列出现在查询的条件中,而该列的数据是无序的,查询时只能从第一行开始一行一行的匹配。创建索引就是对某些特定列中的数据排序,生成独立的索引表。

一、概述

数据库中索引(Index)的概念与目录的概念非常类似。如果某列出现在查询的条件中,而该列的数据是无序的,查询时只能从第一行开始一行一行的匹配。创建索引就是对某些特定列中的数据排序,生成独立的索引表。在某列上创建索引后,如果该列出现在查询条件中,Oracle会自动的引用该索引,先从索引表中查询出符合条件记录的ROWID,由于ROWID是记录的物理地址,因此可以根据ROWID快速的定位到具体的记录,表中的数据非常多时,引用索引带来的查询效率非常可观。

优点

1、提高对表的查询速度;

2、对表有关列的取值进行检查。

缺点

对表进行insert,update,delete处理时,由于要表的存放位置记录到索引项中而会降低一些速度。

注意

1、一个基表不能建太多的索引;

2、空值不能被索引

3、只有唯一索引才真正提高速度,一般的索引只能提高30%左右。

二、创建索引

语法

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]

参数

01、UNIQUE:指定索引列上的值必须是唯一的。称为唯一索引。

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

03、index 索引名

04、table 创建索引的基表名

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

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

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

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

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

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

11、Tablespace 表空间名

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

三、删除索引 

DROP INDEX index;

四、修改索引 

ALTER [UNIQUE] INDEX [user.]index
[INITRANS n]
[MAXTRANS n] 
REBUILD 
[STORAGE n]

五、例句

--平衡树索引(B-tree index)
CREATE INDEX fname_idx ON employees (first_name);

--唯一索引(B-tree cluster index)
CREATE unique INDEX fname_idx ON employees (first_name);

--复合索引
CREATE INDEX fname_id_idx ON employees (first_name, employees_id);

--反向键索引(reverse key indexes)
CREATE INDEX fname_idx ON employees (first_name) REVERSE;
--取消反向索引
ALTER INDEX fname_idx REBUILD NOREVERSE;

四、查看索引信息

1、索引信息,包含索引类型,唯一性,索引作用等表的信息

DBA_INDEXES

ALL_INDEXES

USER_INDEXES

2、索引列信息  包括索引上的列的排序方式等信息

DBA_IND_COLUMNS

ALL_IND_COLUMNS

USER_IND_COLUMNS

目录
相关文章
|
7月前
|
索引
索引
索引。
39 0
|
4天前
|
存储 Java 索引
索引
索引
21 5
|
10天前
|
SQL 搜索推荐 关系型数据库
|
12天前
|
SQL 关系型数据库 MySQL
关于索引的使用
关于索引的使用
|
15天前
|
存储 算法 关系型数据库
索引总结(2)
索引总结(2)
|
7月前
|
存储 关系型数据库 MySQL
了解和认识索引
了解和认识索引 。
39 0
|
7月前
|
关系型数据库 MySQL 数据库
了解和认识索引
了解和认识索引。
27 0
|
7月前
|
关系型数据库 MySQL 索引
索引(2)
索引(2)。
16 0
|
11月前
|
数据库 索引
请注意这些情况下,你的索引会不生效!
数据库性能优化是确保系统高效运行的关键要素之一。而索引作为提升数据库查询性能的重要工具,在大部分情况下都能发挥显著的作用。然而,在某些情况下,索引可能会失效或不起作用,导致查询性能下降,甚至引发性能瓶颈。
|
存储 缓存 自然语言处理
正排索引
介绍ElasticSearch相关正排索引