在多个课程、书籍和作业中,我看到定义为VARCHAR(255)的文本字段是“简短”文本的默认格式。除了成为a nice round number之外,还有什么好的理由可以解释为什么选择长度为255?这是否是过去某个时候的一种阻碍,当时有一个很好的理由(无论今天是否适用)?
当然,我意识到,如果你知道字符串的最大长度,更严格的限制会更理想。但是,如果您使用的是VARCHAR(255),这可能表示您不知道最大长度,只是表示它是一个“短”字符串。
注意:我发现了这个问题(varchar(255) v tinyblob v tinytext),它说VARCHAR(n)需要n<=255存储的n+1字节,n>255的n+2存储字节。这是唯一的原因吗?这看起来有点任意性,因为与VARCHAR(256)相比,您只需要保存两个字节,并且可以通过声明VARCHAR(253)来轻松地保存另外两个字节。
发布于 2009-08-01 20:57:31
在历史上,255个字符通常是VARCHAR
在某些DBMSes中的最大长度,如果您想使用UTF-8并对列进行索引(由于索引长度的限制),它有时仍然是有效的最大值。
发布于 2009-08-01 20:56:29
之所以使用255,是因为它是使用8位数可以计数的最大字符数。它最大限度地使用了8位计数,而不需要另一个整个字节来计算255个以上的字符。
当使用这种方式时,VarChar只使用字节+1的数量来存储文本,所以最好将其设置为255,除非您希望对字段中的字符数进行硬限制(比如50个)。
发布于 2009-08-01 21:17:17
可能是因为Server和Sybase (我熟悉的两个例子)过去在VARCHAR
列中的字符数中都有255个字符的最大值。对于Server来说,在1996/1997年的第7版中,这种情况发生了改变.但旧习惯有时很难改掉。
https://stackoverflow.com/questions/1217466
复制相似问题