1. 程式人生 > >mysql varchar(n) n表示字元個數

mysql varchar(n) n表示字元個數

(注:以下針對mysql 5.0以上版本)

mysql varchar(n)  n表示字元個數,不是位元組數。

對於utf8編碼,無論是字元、數字、漢字均佔3位元組。

varchar最大長度為65535個位元組,最大可儲存漢字數 = (65535-1-2)/3
減1是因為實際儲存從第2個位元組開始
減2是因為要在列表長度儲存實際字元長度

除3是因為utf8編碼限制。


例:1.驗證varchar(n)表示漢字

CREATE TABLE `t1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

例:2. n表示字元,那麼varchar(n)中n的最大值應該為: 

n = (65535-1-2-4)/3=21842.67 = 21843
減1和減2與上例相同;
減4的原因是int型別的id佔4個位元組;

編碼是utf8