1、varchar與char兩個數據類型用於存儲字符串長度小於255的字符,MySQL5.0之前是varchar支持最大255。比如向一個長度為40個字符的字段中輸入一個為10個字符的數據。使用varchar取為10個字符;使用char取為40個字符。
2、varchar占用更少的存儲空間,擁有額外1-2個字節存儲長度(比如:列長度<=255時,varchar(255)會占用256個字節存儲空間加1,varchar(256)會占用258個字節存儲空間加2),5.0以上版本,取值或設置值都會保存字符串末尾的空格,4.1之前的版本都會把字符串末尾的空格刪除掉,最大長度遠大於平均長度,很少發生更新的時候適合使用varchar,因為碎片更少了。
3、char使用固定長度,保存的時候會去掉字符串末尾的空格,適合保存MD5後的哈希值或經常改變的值,因為固定的行不容易產生碎片,處理的速度比varchar快,因此,用戶在設計數據庫時應當綜合考慮各方面的因素,以求達到最佳的平衡。