MySQL優化技巧之CHAR的使用

Time:2015/01/29 18:19:06   Click:

VARCHAR和CHAR應該說(shuō)是MySQL最常用的字符串。但不幸的是,很難精确的解釋這(zhè)些值是怎麼(me)存儲在磁盤和内存中的,因爲這(zhè)些與存儲引擎有關。

VARCHAR 是可以存儲變長(cháng)字符串。比如 v archar(32) ,可以存儲 16個字符,也可一下存儲32個字符(這(zhè)裡(lǐ)的可變長(cháng)度是在32個字符串以内,他是不能(néng)存儲64個字符的)。

CHAR類型是定長(cháng)的。比如C HAR(32),如果我們存儲16個字符長(cháng)的字符串,那麼(me)數據庫會(huì)自動的填充16個空格這(zhè)裡(lǐ),在取出時(shí)就(jiù)是32位的字符串。

對(duì)于VARCHAR和CHAR在存儲字節來看的話都(dōu)差不多,除了本身存儲位數以外,都(dōu)會(huì)有多餘字節指定長(cháng)度,所以VARCHAR與HAR越來越接近。所以很多人就(jiù)在創建表的時(shí)候全部使用VARCHAR來定義字符串。

CHAR不是越來越失去存在意義了嗎?當然不是,CHAR還(hái)是有優點的。

1、CHAR很适合存儲很短的字符串,如C HAR(1) 來存儲隻有Y和N的值。

2、CHAR合适定長(cháng),這(zhè)裡(lǐ)是定長(cháng)存儲密碼的MD5值,。 

3、CHAR存儲經(jīng)常變化的定長(cháng)數據。因爲定長(cháng)CHAR在改變時(shí)不容易産生碎片。比如密碼的MD5,定長(cháng)而且容易變化。

所以在創建數據庫表時(shí),CHAR還(hái)是有自己的特色。當然VARCHAR也會(huì)不斷的修改和優化,VARCHAR也可以完成(chéng)CHAR的所以事(shì)情。如果使用不同的的類型數據,看起(qǐ)來有點高大上的感覺!别無其他目的。

TOP

錦江區聚格樂享網絡工作室@2012 版權所有
蜀ICP備12016524号-2

立即咨詢
成(chéng)都(dōu)網站建設,成(chéng)都(dōu)做網站,錦江區聚格樂享網絡工作室
40f13d50b73e104f832ed1b719ae6935