数据库索引

数据库索引，通常简称为索引，是数据库管理系统中使用的数据结构，其主要作用是加快提数据表上数据检索的速度，快速定位数据，而无需每次都搜索表中的每一行（row）；但通常也要付出相应的代价，比如减慢写入、更新的速度，占用更多空间等。

索引一般是从表中选定列（column, 一个或多个列）的数据建立存储副本，通过“键”或指向其对应行位置的链接，定位到数据表的行。某些数据库甚至允许通过函数或表达式转换而得到的列值上创建索引。

索引类型有两种基本形式，基于值顺序的顺序索引、与将值平均分布到若干散列桶中的散列索引。顺序索引可细分为聚集索引与非聚集索引。

聚集索引
索引键值的逻辑顺序与索引所服务的表中相应行的物理顺序相同的索引，被称为聚集索引，反之为非聚集索引，索引一般使用二叉树排序索引键值的，聚集索引的索引值是直接指向数据表对应元组的，而非聚集索引的索引值仍会指向下一个索引数据块，并不直接指向元组，因为还有一层索引进行重定向，所以非聚集索引可以拥有不同的键值排序而拥有多个不同的索引。而聚集索引因为与表的元组物理顺序一一对应，所以只有一种排序，即一个数据表只有一个聚集索引。

参考文献
http://www.cnblogs.com/aspnethot/articles/1504082.html  聚集索引和非聚集索引（整理） - 布颜书 - 博客园 

外部链接
数据库技术之索引与查询 _51CTO.COM

Category:数据库管理系统