
latin1 字符集, 65532
utf8 字符集, 21844
utf8mb4 字符集, 16128
也就是说如果设定为 utf8mb4 字符集, varchar 最多能存 16128 个字符, 不论是中文还是英文.
(65535-1-2)/1=65532
(65535-1-2)/3=21844
(65535-1-2)/4=16383 !=16128, 不满足这个"公式"
官方文档: https://dev.mysql.com/doc/refman/5.7/en/char.html
The effective maximum length of a VARCHAR is subject to the maximum row size (65,535 bytes, which is shared among all columns) and the character set used.
     1   jin7   OP 对了, mysql 版本是 5.7.17, 存储引擎是 innodb   |  
     2   jin7   OP  |  
     3   soli      2017-09-21 10:31:47 +08:00  有用。谢谢。   |  
     4   iwishing      2017-09-21 17:16:27 +08:00  16383-16128=255  你试试看只有一个 colume,能有多长?  |  
     5   iwishing      2017-09-22 12:40:08 +08:00   http://img.vim-cn.com/40/aefbf9e17f48daf8a6c758a1202f4de5a67342.png  which is shared among all columns, 所有列都共享这个长度  |  
     6   jin7   OP 我回去试试哈   |  
     8   jin7   OP @iwishing 65,535 bytes, which is shared among all columns   之前是我没看明白这句话.  |  
     10   mysql      2017-10-01 10:13:34 +08:00  感谢分享   |