在MySQL数据库varchar规则限制

在MySQL数据库varchar规则限制
在MySQL数据库中varchar的最大长度是多少事实上,这不是一个定数,和varchar的长度是有限制的。在本文中,我们将介绍MySQL数据库varchar的限制规则,并通过一个实例说明限制规则。下面让我们一起来学习这个部分。

1。限制性规则

定义字段时,字段的限制有以下规则:

(a)存储限制

VARCHAR字段存储实际内容外聚集索引。内容的开头是1到2字节,表示实际长度(2字节长于255),因此最大长度不能超过65535。

B)代码长度限制

如果字符类型是GBK,每个字符占用2个字节最多和最大长度不能超过32766。

如果字符类型是UTF8,每个字符占用3个字节最多和最大长度不能超过21845。

如果以上超出限制在定义的时候,VARCHAR字段是强制转换为文本型,并产生警告。

线长度限制

在实际应用中的varchar长度限制是线的definition.mysql长度要求线不应超过65535定义的长度。如果定义表的长度超过此值,提示error1118(42000):rowsizetoolarge。themaximumrowsizefortheusedtabletype,notcountingblobs,is65535.youhavetochangesomecolumnstotextorblobs。

2。计算实例

给出了两个实例来说明实际长度的计算。

a)如果一个表只有一个VARCHAR类型,定义为createtablet4(cvarchar = GBK字符集(n)),n是最大值(65535-1-2)/ 2 = 32766。

减少1的原因是实际的行存储是从第二个字节开始的;

2的减少是由于2字节长度的varchar头。

2的原因是字符编码是GBK。

B)如果一个表定义为createtablet4(CINT,c2char(30),c3varchar(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。

在MySQL数据库varchar的限制规则的知识介绍到这里,希望本文的介绍可以奖励你!

tag:数据库规则电脑软件mysqlvarchar

相关内容