《mysql char、varchar、text等字符串類型定義Mysql必讀》要點(diǎn):
本文介紹了mysql char、varchar、text等字符串類型定義Mysql必讀,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
導(dǎo)讀:1.對(duì)于長(zhǎng)度基本固定的列,如果該列恰好更新又特別頻繁,適合char2.varchar雖然存儲(chǔ)變長(zhǎng)字符串,但不可太小也不可太大.UTF8最多能存21844個(gè)...
1.對(duì)于長(zhǎng)度基本固定的列,如果該列恰好更新又特別頻繁,適合char
2.varchar雖然存儲(chǔ)變長(zhǎng)字符串,但不可太小也不可太大.UTF8最多能存21844個(gè)漢字,或65532個(gè)英文
3.varbinary(M)保存的是二進(jìn)制字符串,它保存的是字節(jié)而不是字符,所以沒(méi)有字符集的概念,M長(zhǎng)度0-255(字節(jié)).只用于排序或比較時(shí)大小寫敏感的類型,不包括密碼存儲(chǔ)
4.TEXT類型與VARCHAR都類似,存儲(chǔ)可變長(zhǎng)度,最大限制也是2^16,但是它20bytes以后的內(nèi)容是在數(shù)據(jù)頁(yè)以外的空間存儲(chǔ)(row_format=dynamic),對(duì)它的使用需要多一次尋址,沒(méi)有默認(rèn)值.
一般用于存放容量平均都很大、操作沒(méi)有其它字段那樣頻繁的值.
網(wǎng)上部分文章說(shuō)要避免使用text和blob,要知道如果純用varchar可能會(huì)導(dǎo)致行溢出,效果差不多,但因?yàn)槊啃姓加米止?jié)數(shù)過(guò)多,會(huì)導(dǎo)致buffer_pool能緩存的數(shù)據(jù)行、頁(yè)下降.另外text和blob上面一般不會(huì)去建索引,而是利用sphinx之類的第三方全文搜索引擎,如果確實(shí)要?jiǎng)?chuàng)建(前綴)索引,那就會(huì)影響性能.凡事看具體場(chǎng)景.
另外盡可能把text/blob拆到另一個(gè)表中
5.BLOB可以看出varbinary的擴(kuò)展版本,內(nèi)容以二進(jìn)制字符串存儲(chǔ),無(wú)字符集,區(qū)分大小寫,有一種經(jīng)常提但不用的場(chǎng)景:不要在數(shù)據(jù)庫(kù)里存儲(chǔ)圖片.
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/5564.html