mysql中char和varchar數(shù)據(jù)類型的區(qū)別是什么

mysqlchar和varchar數(shù)據(jù)類型的區(qū)別是:varchar類型用于存儲(chǔ)可變長的字符串,char類型用于存儲(chǔ)定長的字符串。varchar適用于字符串列的最大長度比平均長度大的情況,char適用于列的長度為定值的情況。

mysql中char和varchar數(shù)據(jù)類型的區(qū)別是什么

(推薦教程: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ù)。

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享