根据MySQL文档,VARCHAR
将使用1个字节来表示字符串的长度,前提是该列中的所有值的长度为0-255,否则将使用2个字节。
如果列中的大量数据全部为255或更少,则会发生什么情况,并且在条目之后,输入长度为256的单个条目。是否重新格式化操作以更新此列中的其他字符串以使用2个字节而不是1个字节?除了插入无效/忽略数据之外,有没有办法抢占此操作?像myField VARCHAR(1000) not null always-use-two-bytes,
这样的东西(显然它会比那更干净......但是你明白了)。
答案 0 :(得分:1)
文档的实际引用是:
如果值不超过255个字节,则列使用一个长度字节;如果值可能需要超过255个字节,则列使用两个长度字节。
这对我来说意味着如果你有varchar(256+)那么它将从头开始使用2个字节。