與char 的區別
VARCHAR型和CHAR型數據的這個差別是細微的,但是非常重要。他們都是用來儲存字元數值小於255的字元,mysql5.0之前是varchar支持最大255。
假如你向一個長度為四十個字元的VARCHAR型欄位中輸入數據Bill Gates。當你以後從這個欄位中取出此數據時,你取出的數據其長度為十個字元——字元串Bill Gates的長度。 假如你把字元串輸入一個長度為四十個字元的CHAR型欄位中,那么當你取出數據時,所取出的數據長度將是四十個字元。字元串的後面會被附加多餘的空格。
當你建立自己的站點時,你會發現使用VARCHAR型欄位要比CHAR型欄位方便的多。使用VARCHAR型欄位時,你不需要為剪掉你數據中多餘的空格而操心。
VARCHAR型欄位的另一個突出的好處是它可以比CHAR型欄位占用更少的記憶體和硬碟空間。當你的資料庫很大時,這種記憶體和磁碟空間的節省會變得非常重要.
雖然VARCHAR使用起來較為靈活,但是從整個系統的性能角度來說,CHAR數據類型的處理速度更快,有時甚至可以超出VARCHAR處理速度的50%。因此,用戶在設計資料庫時應當綜合考慮各方面的因素,以求達到最佳的平衡。
特點
1、使用比固定長度類型(char)占用更少存儲空間(除了使用ROW_FORMAT=FIXED創建的
MyISAM表)。
2、使用額外的1-2位元組來存儲值長度,列長度<=255使用1位元組保存,其它情況使用2位元組保存。例如varchar(10)會占用11位元組存儲空間,varchar(500)會占用502位元組存儲空間。
3、節約空間,所以性能會有幫助。在更新的時候會產生額外的工作。
4、5.0以上版本,取值或設定值都會保存字元串末尾的空格,4.1之前的版本都會把字元串末尾的空格刪除掉。
5、最大長度遠大於平均長度,很少發生更新的時候適合使用varchar,因為碎片更少了。
char特點
1、使用固定長度。
2、保存的時候會去掉字元串末尾的空格。
3、適合保存
MD5後的
哈希值或經常改變的值,因為固定的行不容易產生碎片。
示例
char去掉字元串末尾的空格示例: