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

聚集索引和非聚集索引是SQL SERVER 数据库中的索引类型。

一、聚集索引

1.定义

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

2.聚集索引的适用情形
我们可以在针对以下情况建立聚集索引

  • 经常对某些列进行范围搜索,例如查询一段日期范围。
    当找到包含第一个数据的行之后,便可以确保包含后续索引值的行在物理位置上相邻。
  • 经常对查出的数据按照某一列进行排序,也可以再该列上建立聚集索引,避免在每次查询数据是都进行排序,从而节约时间成本。
  • 当索引值唯一时,使用聚集索引查找特定的行也很有效率,例如建立主键。

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

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

二、非聚集索引

1.定义

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

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

这里写图片描述

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值