今天就跟大家聊聊有關(guān)MySQL中varchar占用多少空間,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為玄武企業(yè)提供專業(yè)的成都網(wǎng)站制作、做網(wǎng)站,玄武網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
varchar(N)里的N是字符數(shù),而不是字節(jié)數(shù);字符類型(varchar text blob等)空間=字符實(shí)際長(zhǎng)度+字段長(zhǎng)度。
varchar(N)占用的空間:
如果是lantin1字符集時(shí),最大空間=1N+(1 or 2)bytes,因?yàn)閘antin1的1個(gè)字符占用1個(gè)字節(jié),后面加的1或2bytes是用來(lái)表示字段長(zhǎng)度的,如果超過(guò)255個(gè)字節(jié),要2個(gè)bytes來(lái)表示字段長(zhǎng)度;
如果是utf8字符集時(shí),最大空間=3N+(1 or 3)bytes,因?yàn)閡tf8的1個(gè)字符占用3個(gè)字節(jié),后面加的1或2bytes是用來(lái)表示字段長(zhǎng)度的。當(dāng)可能超過(guò)255字節(jié)時(shí),要2個(gè)bytes來(lái)表示字段長(zhǎng)度。
舉個(gè)例子:varchar(N)可能超過(guò)255字節(jié),字段長(zhǎng)度=2;
當(dāng)varchar(100)字符集為utf8時(shí),’aaaa‘分別占用幾個(gè)字節(jié)?
因?yàn)関archar(100)存儲(chǔ)中文將占用3100 >225個(gè)字節(jié),
所以需要2個(gè)字節(jié)來(lái)表示字段長(zhǎng)度。’aaaa‘占用的空間=3100+2=302bytes
看完上述內(nèi)容,你們對(duì)mysql中varchar占用多少空間有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。