您经常看到数据库字段设置为255个字符,为什么是传统/历史原因?我认为这与分页/内存限制和性能有关,但是255和256之间的区别始终使我感到困惑。
varchar(255)
考虑到这是容量或大小,而不是索引器,为什么255优于256?是否为某个目的保留了一个字节(终止符或null或其他内容)?
大概varchar(0)是废话(容量为零)吗?在这种情况下,2 ^ 8的空间肯定是256?
还有其他提供性能优势的幅度吗?例如,varchar(512)的性能是否比varchar(511)或varchar(510)低?
所有新旧关系数据库的值均相同吗?
免责声明 -我不是DBA开发人员,我使用适合我的业务逻辑的字段大小和类型,但是我想知道这种偏好的历史原因,即使它不再相关(但如果仍然有用,则更多)。
编辑:
感谢您的回答,似乎有人同意使用字节来存储大小,但这在我心中并没有最终解决问题。
如果元数据(字符串长度)存储在相同的连续内存/磁盘中,则是有意义的。1个字节的元数据和255个字节的字符串数据非常适合彼此,并适合256个连续字节的存储,这大概是整齐的。
但是...如果将元数据(字符串长度)与实际的字符串数据分开存储(也许在主表中),则将字符串数据的长度限制为一个字节,只是因为更容易存储一个1字节的整数元数据似乎有点奇怪。
在这两种情况下,似乎都是很微妙的,可能取决于数据库的实现。使用255的做法似乎已经很普遍了,所以某处某人一定在一开始就为它辩护了一个很好的案例,有人能记得那个案例是/是什么吗?程序员将无缘无故地采取任何新做法,而这一定是一次新的。