1,定長和變長
char 表示定長,長度固定,varchar表示變長,即長度可變。char如果插入的長度小于定義長度時,則用空格填充;varchar小于定義長度時,還是按實(shí)際長度存儲,插入多長就存多長。
因?yàn)槠溟L度固定,char的存取速度還是要比varchar要快得多,方便程序的存儲與查找;但是char也為此付出的是空間的代價,因?yàn)槠溟L度固定,所以會占據(jù)多余的空間,可謂是以空間換取時間效率。varchar則剛好相反,以時間換空間。
2,存儲的容量不同
對 char 來說,最多能存放的字符個數(shù) 255,和編碼無關(guān)。
而 varchar 呢,最多能存放 65532 個字符。varchar的最大有效長度由最大行大小和使用的字符集確定。整體最大長度是 65,532字節(jié)。