的大小和MySQLvarchar尺寸介绍
发布网友
发布时间:2024-09-17 06:32
我来回答
共1个回答
热心网友
时间:2024-09-28 02:31
在4版本中,varchar(20),指的是20字节。如果UTF8汉字存储,只有6个(每个汉字3字节)可以存储。
在5版本以上,varchar(20)指的是20个字,无论是存储在数字、字母或utf8字符(每个汉字3字节),可以存储20,最大大小为65532字节。
最大的mysql4只有20字节,但在mysql5大小不同根据不同的编码。
1。限制性规则
定义字段时,字段的限制有以下规则:
(a)存储限制
VARCHAR字段存储实际内容外聚集索引。内容的开头是1到2字节,表示实际长度(2字节长于255),因此最大长度不能超过65535。
B)代码长度限制
如果字符类型是GBK,每个字符占用2个字节最多和最大长度不能超过32766。
如果字符类型是UTF8,每个字符占用3个字节最多和最大长度不能超过21845。
如果以上超出限制在定义的时候,VARCHAR字段是强制转换为文本型,并产生警告。
线长度限制
在实际应用中的varchar长度限制是线的definition.mysql长度要求线不应超过65535定义的长度。如果桌子的长度超过此值,则提示
错误1118(42000):行大小太大。最大行大小为,例如,大小,65535。
2。计算实例
给出了两个实例来说明实际长度的计算。
a)如果一个表只有一个VARCHAR类型,定义为
创建表的T4(C varchar(n))= GBK字符集;
这里是N的最大值(65535-1-2)/ 2 = 32766。
减少1的原因是实际的行存储是从第二个字节开始的;
2的减少是由于2字节长度的varchar头。
2的原因是字符编码是GBK。
B)如果表被定义为
创建表的T4(C的int,char(30)C2,C3 varchar(n))= utf8字符集;
这里是N的最大值(65535-1-2-4-30 * 3)/ 3 = 21812
减去1和负2以上的相同;
减少4的原因是int型C占4字节;
减少30×3的原因是:(30)字符占用90字节,并且代码UTF8。
如果varchar在B以上规则和强烈转换为文本型,然后各领域职业的长度是11个字节,而不再是varchar。
热心网友
时间:2024-09-28 02:39
在4版本中,varchar(20),指的是20字节。如果UTF8汉字存储,只有6个(每个汉字3字节)可以存储。
在5版本以上,varchar(20)指的是20个字,无论是存储在数字、字母或utf8字符(每个汉字3字节),可以存储20,最大大小为65532字节。
最大的mysql4只有20字节,但在mysql5大小不同根据不同的编码。
1。限制性规则
定义字段时,字段的限制有以下规则:
(a)存储限制
VARCHAR字段存储实际内容外聚集索引。内容的开头是1到2字节,表示实际长度(2字节长于255),因此最大长度不能超过65535。
B)代码长度限制
如果字符类型是GBK,每个字符占用2个字节最多和最大长度不能超过32766。
如果字符类型是UTF8,每个字符占用3个字节最多和最大长度不能超过21845。
如果以上超出限制在定义的时候,VARCHAR字段是强制转换为文本型,并产生警告。
线长度限制
在实际应用中的varchar长度限制是线的definition.mysql长度要求线不应超过65535定义的长度。如果桌子的长度超过此值,则提示
错误1118(42000):行大小太大。最大行大小为,例如,大小,65535。
2。计算实例
给出了两个实例来说明实际长度的计算。
a)如果一个表只有一个VARCHAR类型,定义为
创建表的T4(C varchar(n))= GBK字符集;
这里是N的最大值(65535-1-2)/ 2 = 32766。
减少1的原因是实际的行存储是从第二个字节开始的;
2的减少是由于2字节长度的varchar头。
2的原因是字符编码是GBK。
B)如果表被定义为
创建表的T4(C的int,char(30)C2,C3 varchar(n))= utf8字符集;
这里是N的最大值(65535-1-2-4-30 * 3)/ 3 = 21812
减去1和负2以上的相同;
减少4的原因是int型C占4字节;
减少30×3的原因是:(30)字符占用90字节,并且代码UTF8。
如果varchar在B以上规则和强烈转换为文本型,然后各领域职业的长度是11个字节,而不再是varchar。