【sqlserver】聚集索引和非聚集索引的比较

本文介绍了数据库中聚集索引和非聚集索引的区别:聚集索引改变数据存放顺序,适用于SELECT * 操作;非聚集索引使用指针指向数据位置,减少排序时间。一个表仅能有一个聚集索引但可有多非聚集索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

聚集索引是一种对磁盘上实际数据重新组织以按指定的一列或者多列值排序。像我们用到的汉语字典,就是一个聚集索引。换句话说就是聚集索引会改变数据库表中数据的存放顺序。
非聚集索引不会重新组织表中的数据,而是对每一行存储索引列值并用一个指针指向数据所在的页面。(一个值指向多行等于该值的数据)。sqlserver默认情况下建立的索引是非聚集索引。非聚集索引在排序时会对所有的取值进行排序,然后快速找到该值对应的所有数据,达到减少排序时间的效果,不需要全表扫描。

聚集索引是直接将所有数据排序后存入表中,所以select * 的时候不需要再进行order by的操作,但是建立一个聚集索引,至少需要相当于该表120%的附加空间,用来存放该表的副本和索引中间页,但是他的性能几乎总是比其他索引要快。
非聚集索引不会对表中数据进行排序,而是进行select * from 表名 order by 字段 的操作时减少排序的时间。

一个表只能有一个聚集索引,但是可以有多个非聚集索引。创建一个表的时候自动为主键生成一个聚集索引。所以无法再生成其他的聚集索引。只能删除主键聚集索引,然后为主键生成非聚集索引,再添加新的聚集索引。


以上为自己学习索引时候百度许多了解以后的总结,如有错误或者不详尽的地方还请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值