最近我将排序规则从latin1
更改为utf8
。
并且长度错误,因为utf8
的大小更长。
在更改排序规则之前,字段类型为varchar(50)
,现在我将扩展到varchar(255)
。
在这种情况下,数据库的容量是否也会扩展,这可能是数据库容量限制的错误。
如果我插入的记录中包含小于varchar(255)
的字段,是否会占用全部varchar(255)
的容量?
有人帮忙吗?
答案 0 :(得分:0)
根据MYSQL网站https://dev.mysql.com/doc/refman/8.0/en/char.html
,否使用varchar时,实际存储空间是动态分配的,并且仅由存储在其中的字符数决定。
即使您将VARCHAR(255)和VARCHAR(500)放在此列中也不是那么简单。该行末尾附加的值将是一个整数,该整数存储所存储数据的实际长度。
因此,对于VARCHAR(255),它将额外增加1个字节,对于VARCHAR(500),它将额外增加2个字节。
差别很小。
我相信,尽管我没有数据来备份它,但varchar长度越短,索引查找性能越好