【SQL Server】索引介绍及创建索引

【SQL Server】索引介绍及创建索引

1.索引的作用

索引是最普遍的系统优化方式,是衡量应用系统成败的标准,优化的内容包括数据的查询处理速度

2.索引是什么

索引就相当于目录,通过其可以快速地定位我们要查找的数据,而不必去扫描整个表。从而可以加速我们查询的速度,提高系统的性能。

3.索引有弊端吗

他会占用一定存储空间,索引并不是越多越好,索引并不总是提高系统性能。举一个例子,一本书就几页的情况下,再多加一页为其做一个目录,显然是没有必要的。

4.创建索引的目的

可以更加快速高效的查询数据,减少系统的响应时间。

5.索引分类

索引分为聚集索引非聚集索引

主键为聚集索引,唯一索引为非聚集索引

聚集索引:Clustered,逻辑顺序与物理顺序是一致的。最多只能有一个,可以没有。

非聚集索引:NonClustered,逻辑顺序与物理顺序是并不一致的。可以有多个,可以没有。

聚集索引比非聚集索引的效率更高。

补充

  • 如果需要多个列上建立索引,可以为这些列建立组合索引。

  • 最好建立索引的列选择小数据类型的,访问速度特别快。

  • 索引是看不见的,如果你创建了索引,在查询大数据的时候,它的优势是显而易见的。

脚本创建索引

在设置主键时就会自动设置为聚集索引,设置唯一键时就会自动设置为唯一非聚集索引,所以这两个索引一般不手动建立,多是建立组合索引。

1)聚集的主键索引
--默认非聚集索引,否则需要index前加clustered
--聚集的主键索引
create clustered index 索引名
on 表名(列名)
with
(
	drop_existing=on   --该选项为on时,意为如果表没有索引,则建立失败,如果表上存在索引,就将其删掉,再重新建立一个;若为off,意为如果表没有索引,就建立一个,如果表上存在索引就会重建建立索引失败并提示错误。
)
2)唯一非聚集索引
--唯一非聚集索引
create unique nonclustered index 索引名
on 表名(列名)
with
(
	pad_index=on,   --使用填充。若没有fillfactor,则其没有意义 
	fillfactor=50,   --用于指定创建索引时,每个索引页的数据占索引页大小的百分比。
	ignore_dup_key=on   --若为on,向唯一索引插入一个重复值时,出现一个警告,只有违反唯一性约束才会失败,
	                    --若为off,若出现错误信息,整个信息都会回滚,设置on避免重复键插入,只有违反约束才会失败
)

--读写比为100:1
--读小于写:fillfactor设置50-70
--读写各一半:fillfator设置到80-90
3)复合索引
--复合索引,多个列上建立的索引
create nonclustered index 索引名
on 表名(列名1,列名2...)
with
(
	drop_existing=on
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值