您经常看到数据库字段设置为255个字符,这是传统/历史原因吗?我认为这与分页/内存限制和性能有关,但255和256之间的区别一直让我困惑.
varchar(255)
考虑到空字节,not an indexer是保留容量,not an indexer是保留容量?
大概varchar(0)是个无稽之谈(容量为零)?在这种情况下,2^8的空间应该是256?
是否还有其他幅度可以提供性能优势?例如,varchar(512)的性能是否比varchar(511)或varchar(510)低?
所有新旧关系数据库的值是否相同?
disclaimer-我是一名开发人员而不是DBA,我在已知的情况下使用适合我的业务逻辑的字段大小和类型,但我想知道这种偏好的historic个原因,即使它不再相关(但如果仍然相关,则更重要).
编辑:
感谢您的回答,似乎有一些共识,一个字节用于存储大小,但这并没有在我的脑海中最终解决这个问题.
如果元数据(字符串长度)存储在同一个连续的内存/磁盘中,这是有意义的.1字节的元数据和255字节的字符串数据将非常适合彼此,并适合256个连续字节的存储,这可能是整洁的.
但是...如果元数据(字符串长度)与实际字符串数据(可能在主表中)分开存储,那么将字符串数据的长度限制为一个字节似乎有点奇怪,因为只存储1字节整数的元数据更容易.
在这两种情况下,这似乎是一个微妙的问题,可能取决于数据库的实现.使用255的做法似乎相当普遍,所以一开始肯定有人在某个地方提出了一个很好的理由,有人记得这个理由是什么吗?程序员不会无缘无故地采用任何新的实践,这肯定是新的一次.