索引

简介: 一、概述 数据库中索引(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

目录
相关文章
|
索引
索引
索引。
99 0
|
6月前
|
TensorFlow 算法框架/工具 索引
索引
【8月更文挑战第13天】索引。
38 1
|
9月前
|
存储 NoSQL 关系型数据库
索引!索引!!索引!!!到底什么是索引?
**索引是数据库中的数据结构,类似书籍目录,加速数据查找和访问。优点包括提升查询性能、数据检索速度、支持唯一性约束及优化排序和连接操作。缺点在于增加写操作开销、占用存储空间、高维护成本和过多索引可能降低性能。常见的索引类型有单值、复合、唯一、聚集和非聚集索引等,实现方式涉及B树、B+树和哈希表。B树和B+树适合磁盘存储,B+树尤其适用于范围查询,哈希索引则适用于快速等值查询。**
110 0
|
9月前
|
SQL 搜索推荐 关系型数据库
|
9月前
|
SQL 关系型数据库 MySQL
关于索引的使用
关于索引的使用
|
存储 关系型数据库 MySQL
了解和认识索引
了解和认识索引 。
74 0
|
9月前
|
安全 关系型数据库 MySQL
合理使用索引
【5月更文挑战第9天】这篇文章探讨了数据库索引的高效使用,包括函数和表达式索引、查找和删除未使用的索引、安全删除索引、多列索引策略、部分索引以及针对通配符搜索、排序、散列和降序索引的特殊技巧。还介绍了部分索引在减少索引大小和处理唯一性约束中的应用,以及PostgreSQL对前导通配符搜索的支持。通过遵循简单的多列索引规则和利用特定类型的索引,如哈希和降序索引,可以显著提高查询性能。
117 0
|
9月前
|
存储 算法 关系型数据库
索引总结(2)
索引总结(2)
59 0
|
关系型数据库 MySQL 索引
索引(2)
索引(2)。
52 0
|
关系型数据库 MySQL 数据库
了解和认识索引
了解和认识索引。
62 0