Varchar和char相同的大小更大?

时间:2014-10-07 20:41:06

标签: mysql

对不起, 如果我有一个String,则长度为10。 然后,我将它保存在db上,类型为varchar,长度也是10。 然后,我也将它保存在char类型上,长度为10 .. 哪个尺寸更大? Varchar(10)或char(10)

我在哪里可以获得此文档?关于mysql的数据类型和大小?

谢谢

2 个答案:

答案 0 :(得分:2)

在MySQL中,CHAR数据类型需要M x w个字节的存储空间,其中M是字段的大小,w是字符集中最大长度字符的大小(以字节为单位)。

VARCHAR类型需要L + 1(或L + 2超过255个字节)字节,其中L是字符串的长度(以字节为单位)。

如果字段中的所有数据长度相同,CHAR数据类型占用的空间会减少,但数据长度会有所不同,VARCHAR是更好的选择

例如:假设字段中包含2行数据 - XXXXXXXXXX,XXX

如果数据类型为CHAR(10),则总大小为10 x 1 x 2或20字节。 如果数据类型为VARCHAR(10),则总大小为(10 + 1)+(3 + 1)或15字节。

答案 1 :(得分:0)

Varchar占用更多存储空间,因为它在MySQL中存储了一个长度前缀。 Char没有,因为它不是必需的。 (即它是一个固定长度的字符串,因此数据库知道实际字符串的长度。)当实际字符串短于列长度时,字符末尾填充空格。

有关此问题的所有详细信息,请参阅http://dev.mysql.com/doc/refman/5.0/en/char.html