我知道这不是一个好主意,但我想仔细检查一下这不会造成服务器崩溃等疯狂的事情。
CREATE TABLE [dbo].[Items](
[Id] [nvarchar](255) NOT NULL PRIMARY KEY,
[Value] [nvarchar](max) NOT NULL,
)
了解像这样的密钥与 [int] 密钥相比如何的详细信息会很有趣,但只要确认这不会损害任何东西就足够了。
可以使用 VARCHAR(#) 作为主键吗?
Yes.
From 文档 http://msdn.microsoft.com/en-us/library/ms176089.aspx, a VARCHAR(255)
对于该列,将占用最多 257 (255+2) 个字节(取决于实际数据的长度)——每row.
了解像这样的密钥与INT
key
INT
占用4个字节,根据文件 http://msdn.microsoft.com/en-us/library/ms187745.aspx。根据您的数据,有一些占用较少空间的数字数据类型:
-
SMALLINT
: 2 字节
-
TINYINT
: 1 byte
字节数越少,访问列中数据的速度就越快。这包括 JOIN。此外,数据库(和备份)将会更小。
我非常质疑是否需要如此大的VARCHAR
作为主键——GUID 甚至没有那么长。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)