Oracle的索引学习
索引是对数据库表中一个或多个列的值进行排序的结构。
??
?索引是为了提高数据库的查询性能,而引入的概念。索引的概念,就是根据表记录中的一个或多个列,通过一定的运算规则,将这些列的特征表示为一个数值或字
符串。数据库系统将这些数值或字符串加上与之相关的ROWID,用一定的数据结构保存起来。实现的基本原理:使用了一个折半查找法,映射到数据结构上就是
一个二叉树的应用【此理解片面】
?? ?索引分为:聚簇索引和非聚簇索引。
??
【聚簇索引】是索引目录与目前记录的物理位置一一对应,因此一个表中只能有一个聚簇索引。
??
【非聚簇索引】指针的概念,记录的是目前记录的物理位置的地址,注意:插入,修改频繁的最好不用。
??
【聚簇索引】与【非聚簇索引】的两个属性:唯一索引与复合索引
?? ?用法举例:
??
?--创建一个非聚簇,非唯一的索引
?? ?CREATE INDEX COL_INDEX ON
MY_TABLE(ONE_COLUMN);
?? ?--创建一个聚簇,非唯一索引
?? ?CREATE
CLUSTERED INDEX COL_INDEX_CLUSTERED ON MY_TABLE(ONE_COLUMN)
??
?--创建一个聚簇,唯一索引
?? ?CREATE UNIQUE CLUSTERED INDEX COL_INDEX ON
MY_TABLE(ONE_COLUMN)