mysql中char和varchar數(shù)據(jù)類型的區(qū)別是:varchar類型用于存儲(chǔ)可變長的字符串,char類型用于存儲(chǔ)定長的字符串。varchar適用于字符串列的最大長度比平均長度大的情況,char適用于列的長度為定值的情況。
(推薦教程:mysql教程)
mysql中char和varchar數(shù)據(jù)類型的區(qū)別是:
varchar類型用于存儲(chǔ)可變長的字符串,是比較常見常用的字符串?dāng)?shù)據(jù)類型。
在存儲(chǔ)的字符串是變長時(shí),varchar更加節(jié)約空間。由于varchar是變長的,在使用update的時(shí)候,可能使得行變得比原來更長,這就導(dǎo)致需要做額外的工作。
如果一個(gè)行占用的空間增加,并且在頁內(nèi)沒有多余的空間可與存儲(chǔ),這是innoDB的存儲(chǔ)引擎需要分裂頁來使行可以放進(jìn)頁內(nèi)。
char類型用于存儲(chǔ)定長的字符串。
在存儲(chǔ)數(shù)據(jù)時(shí),MySQL會(huì)刪除所有文末的空格,所以,即便你存儲(chǔ)的是:’abc ‘,注意這個(gè)字符串末尾是有空格的,也會(huì)在存儲(chǔ)時(shí)把這個(gè)空格刪掉。
我們來看一下使用場景:
varchar適用的場景:
-
字符串列的最大長度比平均長度要大很多;
-
字符串列的更新很少時(shí),因?yàn)闆]有或很少有內(nèi)存碎片問題;
-
使用了UTF-8這樣復(fù)雜的字符集,每個(gè)字符都使用不同的字節(jié)數(shù)進(jìn)行存儲(chǔ);
char適用的場景:
-
列的長度為定值時(shí)適合適用,比如:MD5密文數(shù)據(jù)。