varchar列的大小

时间:2008-10-07 06:06:25

标签: sql-server optimization varchar

在sql server中,如果我将varchar列定义为长度为32或128,会有所不同吗?

3 个答案:

答案 0 :(得分:12)

varchar是一个可变字符字段。这意味着它可以将文本数据保存到一定长度。 varchar(32)只能容纳32个字符,而varchar(128)可以容纳128个字符。如果我试图将“12345”输入到varchar(3)字段中;这是将要存储的数据:

“123”

“45”将被“截断”(丢失)。

在您知道某个字段仅为(或仅应该)最多一定长度的情况下,它们非常有用。例如:邮政编码或州名缩写。事实上,它们通常用于几乎所有类型的文本数据(例如名称/地址/等等) - 但在这些情况下,您必须小心,您提供的数字对于将填充的数据类型来说是理智的最大值那一栏。

但是,使用它们时也必须小心,只允许用户输入字段支持的最大字符数。否则,当它截断用户的输入时,可能会造成混淆。

答案 1 :(得分:4)

应该没有明显的区别,因为后端只会存储您插入该列的数据量。它没有填充到字段的完整大小,就像使用char列一样。

编辑:有关详细信息,此link应该很有用。

答案 2 :(得分:4)

不应该。它只定义了它可以容纳的最大长度,实际使用的长度取决于插入的数据。