char屬於固定長度的字符類型,varchar屬於可變長度的字符類型。
char處理速度比varchar快,但是浪費存儲空間,程序需要對行尾空格進行處理,對於長度變化不大並且查詢速度有較高要求的數據可以使用char。
不同的存儲引擎對char和varchar的原則
MyISAM:建議使用固定長度的數據列代替可變長度的數據列。//默認存儲格式是靜態表
MEMORY:使用固定長度的數據行存儲,因爲無論char還是varchar都默認作爲char處理,速度快。
InnoDB:建議使用varchar,存儲格式沒有區分固定場地和可變長度列,因此性能上差別不大,而varchar佔用空間小。