MySQL:varchar(64) 与 varchar(255),小字符串有区别吗?
MySQL: varchar(64) vs. varchar(255), is there a difference for small strings?
假设所有环境(引擎、字符集等)都相同,将字符串“hello”存储在 varchar(64) 或 varchar(255) 的列中是否有区别? (例如引擎自动分配space为最大长度或填充字符串)
为了提供一些上下文,我有一个案例,我将在 99% 的时间内存储长度小于 64 的文本,而在剩余的 1% 的时间内存储长度在 64 到 255 之间的文本。
现在,如果 varchar(255) 有很大的开销,那么我将为长字符串情况创建一个单独的 table,但如果没有任何开销,那么我将将该列声明为 varchar (255).
我能找到的最接近的答案是以下问题:
How much real storage is used with a varchar(100) declaration in mysql?
然而它并没有准确回答我的问题。
没有。有些人只对所有短字符串列使用 VARCHAR(255)
。对于 CHAR
列,所有字符串都将用空格填充到定义的长度。
假设所有环境(引擎、字符集等)都相同,将字符串“hello”存储在 varchar(64) 或 varchar(255) 的列中是否有区别? (例如引擎自动分配space为最大长度或填充字符串)
为了提供一些上下文,我有一个案例,我将在 99% 的时间内存储长度小于 64 的文本,而在剩余的 1% 的时间内存储长度在 64 到 255 之间的文本。
现在,如果 varchar(255) 有很大的开销,那么我将为长字符串情况创建一个单独的 table,但如果没有任何开销,那么我将将该列声明为 varchar (255).
我能找到的最接近的答案是以下问题: How much real storage is used with a varchar(100) declaration in mysql?
然而它并没有准确回答我的问题。
没有。有些人只对所有短字符串列使用 VARCHAR(255)
。对于 CHAR
列,所有字符串都将用空格填充到定义的长度。