在sql表中使用Identity列会增加使用该表的查询的性能

时间:2011-04-27 15:27:11

标签: sql

我创建了一个没有任何索引和标识列的表。我没有必要使用标识列。如果我添加标识列,它将增加与该表一起使用的查询(SELECT,UPDATE,DELETE)的执行。

4 个答案:

答案 0 :(得分:2)

IDENTITY与索引或性能无关,它只是让您不必担心代理键的值。

它是表格元数据的一部分,不是根据实际值推断的。

答案 1 :(得分:2)

如果您将标识字段添加为PK,则可能会提高性能,因为它会自动创建唯一索引。然而,性能的提高来自索引而不是它是一个身份。您可以通过为当前自然键添加索引来简单地增加性能。如果你没有自然,你可能需要重新考虑表设计。 所有表格都应该有唯一标识行的方法。

如果表中没有很多行,那么索引对性能的影响可能不大。

为什么不使用索引?

答案 2 :(得分:1)

如果您正在尝试加快查询速度,首先应该添加适当的索引。主键将自动添加索引,但您必须手动创建其余索引。

这取决于您的平台如何创建它们。在Google中快速搜索应该教你如何添加这些索引以提高性能。

答案 3 :(得分:1)

如果您有很多行(100K +),您将需要索引来提高性能,如果您的行数很少,那么您将无法获得性能提升。

如前所述添加标识只是表上的另一个数据,不会影响性能,但如果有很多行,仍需要使用索引。