wil*_*lvv 18 sql-server indexing identity
我相信当我创建一个identity列时,它会自动编入索引,但我并不是100%肯定.
我应该为identity列创建索引,还是自动创建?
Sam*_*ron 23
create table test (Id int identity)
go
sp_help test
The object 'test' does not have any indexes, or you do not have permissions. No constraints are defined on object 'test', or you do not have permissions.
作为一般惯例,您将在标识列上创建唯一索引,这可以加快查找速度.
通常,您希望您的标识列也是"聚簇索引"(Id int identity primary key是快捷方式表示法),这意味着表格按照您的标识列的顺序放置在磁盘上.这样可以优化插入,因为插入的页面往往位于内存中.在某些情况下,当您对表中的其他数据进行远程查找时,您可能会考虑对其他列进行集群,因为SQL Server仅允许每个表使用一个聚簇索引.
Ode*_*ded 11
如果使用PRIMARY KEY约束创建列,则默认情况下将创建聚簇索引(假设这是一个新表,并且尚未定义此类索引).
作为一个IDENTITY领域与它无关.
所以,回答你的问题 - 如果你要用这个字段查询/排序并且它不是主键,你应该在它上面定义一个索引(经验法则,总是测试你的场景).
| 归档时间: | 
 | 
| 查看次数: | 14793 次 | 
| 最近记录: |