char(10)和VARCHAR(10)主要的區別是什麼? 什麼時或用VARCHAR?

char(10)和VARCHAR(10)主要的區別是什麼? 什麼時或用VARCHAR?code

 
首先明確的是,char的長度是不可變的,而varchar的長度是可變的 unicode

定義一個char[10]和varchar[10],若是存進去的是‘abcd’,那麼char所佔的長度依然爲10,除了字符‘abcd’外,後面跟六個空格,而varchar就立馬把長度變爲4了,取數據的時候,char類型的要用trim()去掉多餘的空格,而varchar是不須要的,效率

char的存取數度仍是要比varchar要快得多,由於其長度固定,方便程序的存儲與查找;可是char也爲此付出的是空間的代價,由於其長度固定,因此不免會有多餘的空格佔位符佔據空間,可謂是以空間換取時間效率,而varchar是以空間效率爲首位的。程序

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

相關文章
相關標籤/搜索