更改varchar长度(mysql)时的数据库容量

时间:2018-07-31 11:52:25

标签: mysql database

最近我将排序规则从latin1更改为utf8
并且长度错误,因为utf8的大小更长。
在更改排序规则之前,字段类型为varchar(50),现在我将扩展到varchar(255)
在这种情况下,数据库的容量是否也会扩展,这可能是数据库容量限制的错误。

如果我插入的记录中包含小于varchar(255)的字段,是否会占用全部varchar(255)的容量?

有人帮忙吗?

1 个答案:

答案 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长度越短,索引查找性能越好