最多存放50個字符,varchar(50)和(200)存儲hello所占空間一樣,但后者在排序時會消耗更多內存,因為order by col采用fixed_length計算col長度(memory引擎也一樣)。在早期 MySQL 版本中, 50 代表字節數,現在代表字符數。
如果是varchar(3),則只能存最長字段為'abc'或'張三豐' 有三個長度的字符。
varchar與char的區別區別一,定長和變長
char 表示定長,長度固定,varchar表示變長,即長度可變。char如果插入的長度小於定義長度時,則用空格填充;varchar小於定義長度時,還是按實際長度存儲,插入多長就存多長。 因為其長度固定,char的存取速度還是要比varchar要快得多,方便程序的存儲與查找;但是char也為此付出的是空間的代價,因為其長度固定,所以會占據多余的空間,可謂是以空間換取時間效率。varchar則剛好相反,以時間換空間。區別之二,存儲的容量不同
對 char 來說,最多能存放的字符個數 255,和編碼無關。而 varchar 呢,最多能存放 65532 個字符。varchar的最大有效長度由最大行大小和使用的字符集確定。整體最大長度是 65,532字節。