VARCHARS:2,4,8,16等?还是1,3,7,15等?

jed*_*mao 4 mysql sql storage varchar limit

我看到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,具体取决于项目.

Joe*_*orn 10

换句话说,如果我有一个我知道永远不会超过12的数字,我应该继续使用VARCHAR(15)还是VARCHAR(16)?

没有!使用varchar(12)(如果长度相当恒定,甚至可以使用char(12)).

曾几何时,varchar类型在某些系统上限制为255个字符(包括5.0.3之前的MySql),因为存储的第一个字节表示字段的长度.鉴于此限制,开发人员希望允许合理数量的文本将选择255而不是完全转到不同的数据类型.

但是,如果您知道数据的大小,请确保使用该数据库的大小.

  • **@ geocar:**如果您的数据库语言环境配置正确,`VARCHAR(12)`将包含12个字符.**`VARCHAR`是区域设置感知的** (4认同)