mysql varchar跟char的區別

非空CHAR的最大總長度是255【字節】;非空VARCHAR的最大總長度是65533【字節】。
可空CHAR的最大總長度是254【字節】;可空VARCHAR的最大總長度是65532【字節】。
原因:非空標記需要占據一個字節,VARCHAR超過255需要用2個字節標記字段長度,不超過255用1個字節標記字段長度.

定義一個char[10]和varchar[10],如果存進去的是‘abcd’,那么char所占的長度依然為10,除了字符‘abcd’外,后面跟六個空格,而varchar就立馬把長度變為4了,取數據的時候,char類型的要用trim()去掉多余的空格,而varchar是不需要的

char的存儲方式是,對英文字符(ASCII)占用1個字節,對一個漢字占用兩個字節;而varchar的存儲方式是,對每個英文字符占用2個字節,漢字也占用2個字節,兩者的存儲數據都非unicode的字符數據。

char的存取數度還是要比varchar要快得多,因為其長度固定,方便程序的存儲與查找;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多余的空格占位符占據空間,可謂是以空間換取時間效率,而varchar是以空間效率為首位的。

char(n)和varchar(n)超出n的范圍時,會截取前面n個字符

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容