您的位置:首页 > 其它

聚集索引与非聚集索引的区别

2017-08-02 18:10 926 查看
聚集索引和非聚集索引是SQL SERVER 数据库中的索引类型。

一、聚集索引

1.定义

聚集索引中键值的逻辑顺序决定了表中相应行的物理存储位置,因此一个表中只能有一个聚集索引。索引的逻辑顺序与相应行的物理位置一致。

2.聚集索引的适用情形

我们可以在针对以下情况建立聚集索引

经常对某些列进行范围搜索,例如查询一段日期范围。

当找到包含第一个数据的行之后,便可以确保包含后续索引值的行在物理位置上相邻。

经常对查出的数据按照某一列进行排序,也可以再该列上建立聚集索引,避免在每次查询数据是都进行排序,从而节约时间成本。

当索引值唯一时,使用聚集索引查找特定的行也很有效率,例如建立主键。

3.如何建立聚集索引

MySQL的InnoDB引擎

InnoDB按照主键进行聚集,当没有设置主键时,InnoDB会以唯一的非空索引来代替,如果既没有主键,也没有唯一的非空索引,InnoDB则会生成一个隐藏的主键然后在上面进行聚集。

SQL SERVER 在建立索引时,可以将索引设置为聚集索引,但是varbinary类型的字段是不可以建立索引的。

二、非聚集索引

1.定义

非聚集索引中键值的逻辑顺序与行的物理存储位置不一致

三、聚集索引和非聚集索引的适用情形

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: