对不起, 如果我有一个String,则长度为10。 然后,我将它保存在db上,类型为varchar,长度也是10。 然后,我也将它保存在char类型上,长度为10 .. 哪个尺寸更大? Varchar(10)或char(10)
我在哪里可以获得此文档?关于mysql的数据类型和大小?
谢谢
答案 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。