聚集索引与非聚集索引的区别
2017-08-02 18:10
926 查看
聚集索引和非聚集索引是SQL SERVER 数据库中的索引类型。
一、聚集索引
1.定义
聚集索引中键值的逻辑顺序决定了表中相应行的物理存储位置,因此一个表中只能有一个聚集索引。索引的逻辑顺序与相应行的物理位置一致。
2.聚集索引的适用情形
我们可以在针对以下情况建立聚集索引
经常对某些列进行范围搜索,例如查询一段日期范围。
当找到包含第一个数据的行之后,便可以确保包含后续索引值的行在物理位置上相邻。
经常对查出的数据按照某一列进行排序,也可以再该列上建立聚集索引,避免在每次查询数据是都进行排序,从而节约时间成本。
当索引值唯一时,使用聚集索引查找特定的行也很有效率,例如建立主键。
3.如何建立聚集索引
MySQL的InnoDB引擎
InnoDB按照主键进行聚集,当没有设置主键时,InnoDB会以唯一的非空索引来代替,如果既没有主键,也没有唯一的非空索引,InnoDB则会生成一个隐藏的主键然后在上面进行聚集。
SQL SERVER 在建立索引时,可以将索引设置为聚集索引,但是varbinary类型的字段是不可以建立索引的。
二、非聚集索引
1.定义
非聚集索引中键值的逻辑顺序与行的物理存储位置不一致
三、聚集索引和非聚集索引的适用情形
一、聚集索引
1.定义
聚集索引中键值的逻辑顺序决定了表中相应行的物理存储位置,因此一个表中只能有一个聚集索引。索引的逻辑顺序与相应行的物理位置一致。
2.聚集索引的适用情形
我们可以在针对以下情况建立聚集索引
经常对某些列进行范围搜索,例如查询一段日期范围。
当找到包含第一个数据的行之后,便可以确保包含后续索引值的行在物理位置上相邻。
经常对查出的数据按照某一列进行排序,也可以再该列上建立聚集索引,避免在每次查询数据是都进行排序,从而节约时间成本。
当索引值唯一时,使用聚集索引查找特定的行也很有效率,例如建立主键。
3.如何建立聚集索引
MySQL的InnoDB引擎
InnoDB按照主键进行聚集,当没有设置主键时,InnoDB会以唯一的非空索引来代替,如果既没有主键,也没有唯一的非空索引,InnoDB则会生成一个隐藏的主键然后在上面进行聚集。
SQL SERVER 在建立索引时,可以将索引设置为聚集索引,但是varbinary类型的字段是不可以建立索引的。
二、非聚集索引
1.定义
非聚集索引中键值的逻辑顺序与行的物理存储位置不一致
三、聚集索引和非聚集索引的适用情形
相关文章推荐
- SQL Server唯一索引UNIQUE和聚集索引、非聚集索引的区别
- SQL SERVER 聚集索引 非聚集索引 区别
- 聚集索引和非聚集索引的区别
- 聚集索引和非聚集索引的区别
- 聚集索引和非聚集索引的区别
- 聚集索引和非聚集索引的区别
- 聚集索引和非聚集索引的区别:
- 聚集索引和非聚集索引的根本区别
- SQL Server 聚集索引和非聚集索引的区别
- 主键与聚集索引的区别
- 【数据库SQL】——聚集索引和非聚集索引根本区别以及使用方式
- SQL Server 聚集索引和非聚集索引的区别
- SqlServer 创建聚集索引与非聚集索引处理千万条数据的优化,以及之间的区别
- SQL Server 聚集索引和非聚集索引的区别分析
- 聚集索引和主键的区别有哪些
- SQL Server2000主键、唯一索引和聚集索引联系与区别
- SQL Server 聚集索引和非聚集索引的区别
- 聚集索引与非聚集索引的区别(未知日期)
- SQL中、聚集索引和非聚集索引有何区别?
- 聚集索引和非聚集索引的区别