日期:2014-05-16  浏览次数:20475 次

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)