MySQL中varchar最大长度是多少?
一. varchar存储规则:
4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)
5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节
常识普及:
varchar最多能存储65535个字节的数据。varchar 的最大长度受限于最大行长度(max row size,65535bytes)。65535并不是一个很精确的上限,可以继续缩小这个上限。65535个字节包括所有字段的长度,变长字段的长度标识(每个变长字段额外使用1或者2个字节记录实际数据长度)、NULL标识位的累计。
计算存储字符公式
字段默认值设为空 占用 1个byte
字符串1-255需要占用1个byte记录字符长度,大于255个长度占用2个byte
结论:varchar 最多存储的长度65535-2-1=65532 byte。
utf8 占用3个字节每个字符
最多存储字符:$max_zifu = 65532/3= 21844