varchar( n ):n 表示允許存入字段的字符數(shù)端仰,不論是漢字還是英文字符。在utf8編碼情況下踊餐,
一個漢字 = 3個字節(jié)
一個英文 = 1個字節(jié)
因此,存入字段的實際字節(jié)長度中英文是不同的苍碟。
MYSQL的varchar最多可以存儲64K抒钱,及65535個字節(jié)(byte)仗扬。
變長類型的字段會用1-2個字節(jié)(byte)的長度來存儲字符的長度诅蝶。當字符(character)的長度小于255的時候用一個字節(jié)(byte)语盈,因為一個字節(jié)(byte)可以表示最大數(shù)值為255。字符(character)長度大于255的時候用兩個字節(jié)(byte)
在 utf8 下 varchar 存儲字符最大長度為? (65535-2)/ 3 = 21844
在 gbk 下 varchar 存儲字符最大長度為? (65535-2) / 2 = 32766
(完)
參考資料: