聚集索引的顺序就是数据的物理存储顺序,而对非聚集索引的解释是:索引顺序与数据物理排列顺序无关。正式因为如此,所以一个表最多只能有一个聚集索引。
聚集索引的特点:
1)聚集索引对于那些经常要搜索范围值得列特别有效。使用聚集索引找到包含第一个值的行后,便可以确保包含后续索引值的行在物理上相邻;
2)对表中数据进行排序时,通常是按照某个字段来排序,可以在该字段上创建聚集索引,避免每次查询该列时都进行排序,节约成本。
3)先创建聚集索引,再创建非聚集索引。这样在创建聚集索引后就无需重新生成非聚集索引了。
4)聚集索引不适合用于频繁更改的列,因为这将导致整行移动。
非聚集索引的特点:
1)不适合返回大型结果集的查询
2)适合返回精确匹配的查询的搜索条件(where子句)中经常使用的列。
Syabse:创建主键时,缺省是聚集唯一索引:
create table t(c1 int not null, c2 int, primary key(c1))
如果需要主键为非聚集索引:create table t(c1 int not null, c2 int, primary key noclustered (c1))
DB2:创建主键时,缺省是非聚集唯一索引:
如果主键列需要聚集索引:删除主键,在主键列上添加聚集唯一索引。
Oracle:没有聚集索引,但类似于IOT。