數(shù)據(jù)庫(kù)類型 char int varchar占用幾個(gè)字節(jié)?
char int varchar占用幾個(gè)字節(jié)?1. 首先,很明顯char的長(zhǎng)度是不可變的,而varchar的長(zhǎng)度是可變的。也就是說(shuō),定義char[10]和varchar[10]。如果保存了“CSDN”
char int varchar占用幾個(gè)字節(jié)?
1. 首先,很明顯char的長(zhǎng)度是不可變的,而varchar的長(zhǎng)度是可變的。也就是說(shuō),定義char[10]和varchar[10]。如果保存了“CSDN”,char的長(zhǎng)度仍然是10。除字符“CSDN”外,后面還有六個(gè)空格。Varchar立即將長(zhǎng)度更改為4。在獲取數(shù)據(jù)時(shí),char類型應(yīng)該更改Trim()用于刪除多余的空間,而varchar則不需要。
2. 即便如此,char的訪問(wèn)次數(shù)也比varchar快得多,因?yàn)樗拈L(zhǎng)度是固定的,便于程序的存儲(chǔ)和搜索;但是char也要付出空間的代價(jià),因?yàn)樗拈L(zhǎng)度是固定的,所以難免會(huì)有多余的空間占位符來(lái)占用空間??梢哉f(shuō),空間是時(shí)間效率的交換,varchar把空間效率放在首位。
3. 此外,char對(duì)于英文字符(ASCII)占用一個(gè)字節(jié),對(duì)于中文字符占用兩個(gè)字節(jié);而varchar對(duì)于每個(gè)英文字符占用兩個(gè)字節(jié),對(duì)于中文字符占用兩個(gè)字節(jié)。
兩者的存儲(chǔ)數(shù)據(jù)都不是Unicode字符數(shù)據(jù)。
MYSQLINNODB主鍵使用varchar和int的區(qū)別?
字符是固定長(zhǎng)度的,查詢時(shí)匹配單詞,所以查詢效率很高。R varchar是一個(gè)長(zhǎng)度可伸縮的字符串,它比char查詢單個(gè)字符匹配的速度慢。