我相信当我创建一个 identity
列时,它会自动创建索引,但我不确定是否完全正确。
我应该为 identity
列创建索引,还是它会自动生成?
我相信当我创建一个 identity
列时,它会自动创建索引,但我不确定是否完全正确。
我应该为 identity
列创建索引,还是它会自动生成?
create table test (Id int identity)
go
sp_help test
对象“test”没有任何索引,或者您没有权限。Id int identity primary key
是快捷符号),这意味着表格在磁盘上的排列顺序与您的标识列相同。这对插入操作进行了优化,因为待插入的页面往往在内存中。在某些情况下,如果您经常在表中的其他数据上进行范围查找,可以考虑聚集其他列,因为SQL Server每个表只允许一个聚集索引。PRIMARY KEY
约束的列,将默认创建一个聚集索引(假设这是一个新表,没有定义此类索引)。IDENTITY
字段与此无关。默认情况下,您的主键列将被转换为聚集索引;这是一种特殊的索引,它与数据不分离 - 相反,数据按该索引的值在表中排序。
我说“默认情况下”,因为如果您想要,可以将聚集索引更改为另一个字段。但是,如果您已经为主键选择了一个良好的标识值,几乎永远不需要更改此设置。