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去掉字符串末尾的空格示例: