使用INTover say a CHARor的最大优势之一VARCHAR(10)是尺寸。该INT值将是 4 个字节,该CHAR/VARCHAR值将是 10 个字节。 NCHAR/NVARCHAR在 20 字节时会更大。由于这个INT值的索引比对应的索引更小,因此更快,有时甚至相当快CHAR/VARCHAR。此外,您的行大小更小,每行需要更少的读取。当然,这一切都与实际的空间存储无关。 Thomas LaRock"right sizing"已就您的数据类型 撰写了数篇博客。这种数据类型是否使我的列看起来很胖以及如何:例如,正确调整缓冲池中当前数据类型的大小。
使用
INT
over say aCHAR
or的最大优势之一VARCHAR(10)
是尺寸。该INT
值将是 4 个字节,该CHAR/VARCHAR
值将是 10 个字节。NCHAR/NVARCHAR
在 20 字节时会更大。由于这个INT
值的索引比对应的索引更小,因此更快,有时甚至相当快CHAR/VARCHAR
。此外,您的行大小更小,每行需要更少的读取。当然,这一切都与实际的空间存储无关。 Thomas LaRock"right sizing"
已就您的数据类型 撰写了数篇博客。这种数据类型是否使我的列看起来很胖以及如何:例如,正确调整缓冲池中当前数据类型的大小。当然,所有这些都假设您实际上不会在跟踪代码中使用字符。如果您是,那么您当然别无选择,只能使用
CHAR\VARCHAR
.int 的问题之一是:它们不能以“0”开头。因此,只要有起始 0 的风险(邮政编码、密码、...),就不要使用 int。