utf-8 - mysql中varchar(M),M的最大值问题
巴扎黑
巴扎黑 2017-04-17 13:48:38
0
1
792

mysql中varchar(M),M的最大值问题
1.mysql每行不能超过65535字节
2.如果某列允许为null,则实际存储最大值为65535-1字节
3.varchar类型所占的最大字节取决于其它列所占的字节,需要65535减去这些
4.varchar本身需要1-2个字节来记录该列的内容长度,超过255个字符需要2个字节

utf8编码下,一般一个汉字占3个字节,英文一个字节,韩语似乎是1个字节,日语似乎也是3个字节

假设,只有一个varchar类型的列,且不允许为null
varchar(M)中的M,为什么不能超过 (65535-2)/3
M是所代表的字符数
mysql怎么就知道你一定存中文呢?
还是说mysql规定:只要是utf8,就按这个公式(确切的说是方式)去计算呢
谢谢诸位了

巴扎黑
巴扎黑

reply all(1)
大家讲道理

Before MySQL 5.0, M represented the number of bytes, and later versions represented the number of characters, so there is a bit of a historical issue here. That's why it's awkward to use formulas to calculate.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template