【译】SQL Server索引进阶第八篇:索引

2022-11-16 00:00:00 索引 创建 语句 主键 约束

索引设计是数据库设计中比较重要的一个环节,对数据库的性能其中至关重要的作用,但是索引的设计却又不是那么容易的事情,性能也不是那么轻易就获取到的,很多的技术人员因为不恰当的创建索引,后使得其效果适得其反,可以说“成也索引,败也索引”。

    本系列文章来自Stairway to SQL Server Indexes,翻译和整理后发布在agilesharp和博客园,希望对广大的技术朋友在如何使用索引上有所帮助。

 

索引和约束

    索引和其它索引本质上并没有什么不同,不同的是索引不允许索引键中存在相同的值。因为索引中每一个条目都与表中的行对应。索引不允许重复值被插入索引也就保证了对应的行不允许被插入索引所在的表,这也是为什么索引能够实现主键和候选键。

    为表声明主键或约束时,SQL Server会自动创建与之对应的索引。你可以在没有约束的情况下创建索引,但反之则不行。定义一个约束时,SQL Server会自动创建一个与之同名的索引,并且你不能在删除约束之前删除索引。但可以删除约束,删除约束也会导致与之关联的索引被删除。

    每个表中可以包含多个索引。比如说AdventureWorks的Product表,含有四个索引,分别是ProductID,ProductNumber,rowguid和ProductNameColumn,设置Product表的人将ProductID作为主键,其它三个作为候选键。

     你可以通过Create INDEX语句创建索引,比如:

				
	

相关文章