我看到一直使用 VARCHAR(255) 而不是 VARCHAR(256),但我也看到使用 VARCHAR(16) 而不是 VARCHAR(15)。这对我来说似乎不一致。如果一个额外的字节被用来存储 VARCHAR 的长度,这条规则难道不应该也适用于更小的长度,比如 2、4、8 变成 1、3、7 吗?
还是我完全错过了什么?
换句话说,如果我有一个我知道永远不会超过 12 的数字,我应该继续使用 VARCHAR(15) 还是 VARCHAR(16) 来代替?因为它使用与 VARCHAR(12) 相同的空间量?如果是这样,我应该使用哪一个? 15 还是 16?当我接近 256 时,这条规则会完全改变吗?
我同时使用 MySQL 和 SQL,具体取决于项目。
最佳答案
In other words, if I have a number that I know will never be above 12, should I just go ahead and use a VARCHAR(15) or VARCHAR(16) instead?
不!使用 varchar(12)(如果长度相当恒定,甚至可以使用 char(12))。
曾几何时,varchar 类型在某些系统上被限制为 255 个字符 (including MySql prior to 5.0.3),因为存储的第一个字节指示字段的长度。鉴于此限制,想要允许合理数量的文本的开发人员会选择 255,而不是完全使用不同的数据类型。
但是如果您知道数据的大小,则一定要为数据库使用该大小。
关于sql - VARCHARS : 2, 4、8、16 等?还是 1、3、7、15 等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1224226/