对于可变长度字符的存储,经常在数据库建表的时候我们会使用varchar字段,有时候不知要存储多长直接写个varchar(50),其实varchar(N)是指可以存放最大字符个数,不是表示用于存储该数据所用的字节数。
所以说varchar类型是有范围限制的,varchar的值为可变长度字符串,可以指定0-65535之间的值,但是如果存储字符编码为GBK的话,每个字符占两个字节,最大长度不超过32766,若为utf-8编码,每个字符占三个字节,varchar最大长度不超过21845。笔者在varchar(N)进行设置时,N的数值最大只能设置为21822。若超过限制,存储数据失败,并且出现Data too long for column 'XXXX' at row 1警告。
在进行varchar类型设置时,超出存储范围MySQL也会提醒用TEXT或BLOB存储数据,其中TEXT是专门用于存储大文本字符数据的,BLOB</