3

如果您使用整数键列而不是 nvarchar(20) 是否会对性能产生重大影响?我假设连接中使用的所有字段都已编入索引。

4

3 回答 3

6

INT应该更快,因为NVARCHAR(20)anINT只有 4 个字节,因此您可以一次在内存中保存更多索引/数据。您应该始终尝试对所有列使用最小的数据类型。

于 2013-08-13T20:37:00.503 回答
2

请看下面的帖子。

加入 varchar VS 加入 int

基本上 int 是最好的选择。

于 2013-08-13T20:34:41.840 回答
0

使用 an 更快,integer因为整数很容易以二进制1's 和0's 存储,计算机比任何语言的字符都更能理解这些。 NVARCHAR必须由 DBMS 转换为更大的二进制类型,这NVARCHAR(20)就是INT我们的示例。一个整数可以保存 4 个字节的数据,而NVARCHAR(20) 最多可以保存 42 个字节的数据,这意味着它们中的任何一个的索引将彼此完全不同。变量字符类型的索引最多可以多出 38 个字节的数据来索引,如果您需要所有这些额外的索引,那么这将是有意义的,但是一个整数已经包含了这么多可能的值。

换句话说,通过INT列进行索引和搜索会更快,因为数据库要查看的信息更少。

请看一下这个答案,它支持我的主张。此链接讨论索引页面。

于 2013-08-13T20:36:17.700 回答