首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我看到VARCHAR(255)经常使用(相对于另一个长度)有一个很好的理由吗?

我看到VARCHAR(255)经常使用(相对于另一个长度)有一个很好的理由吗?
EN

Stack Overflow用户
提问于 2009-08-01 20:51:10
回答 10查看 180K关注 0票数 210

在多个课程、书籍和作业中,我看到定义为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)来轻松地保存另外两个字节。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-08-01 20:57:31

在历史上,255个字符通常是VARCHAR在某些DBMSes中的最大长度,如果您想使用UTF-8并对列进行索引(由于索引长度的限制),它有时仍然是有效的最大值。

票数 128
EN

Stack Overflow用户

发布于 2009-08-01 20:56:29

之所以使用255,是因为它是使用8位数可以计数的最大字符数。它最大限度地使用了8位计数,而不需要另一个整个字节来计算255个以上的字符。

当使用这种方式时,VarChar只使用字节+1的数量来存储文本,所以最好将其设置为255,除非您希望对字段中的字符数进行硬限制(比如50个)。

票数 207
EN

Stack Overflow用户

发布于 2009-08-01 21:17:17

可能是因为Server和Sybase (我熟悉的两个例子)过去在VARCHAR列中的字符数中都有255个字符的最大值。对于Server来说,在1996/1997年的第7版中,这种情况发生了改变.但旧习惯有时很难改掉。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1217466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档