亚洲人成色在线观看,亚洲人成网亚洲欧洲无码久久,亚洲av日韩av天堂久久,亚洲爆乳精品无码一区二区,亚洲av永久无码精品网站色欲

  • 微信
    咨詢
    微信在線咨詢 服務(wù)時間:9:00-18:00
    縱橫數(shù)據(jù)官方微信 使用微信掃一掃
    馬上在線溝通
  • 業(yè)務(wù)
    咨詢

    QQ在線咨詢 服務(wù)時間:9:00-18:00

    選擇下列產(chǎn)品馬上在線溝通

    縱橫售前-老古
    QQ:519082853 售前電話:18950029581
    縱橫售前-江夏
    QQ:576791973 售前電話:19906048602
    縱橫售前-小李
    QQ:3494196421 售前電話:19906048601
    縱橫售前-小智
    QQ:2732502176 售前電話:17750597339
    縱橫售前-燕子
    QQ:609863413 售前電話:17750597993
    縱橫值班售后
    QQ:407474592 售后電話:400-1886560
    縱橫財務(wù)
    QQ:568149701 售后電話:18965139141

    售前咨詢熱線:

    400-188-6560

    業(yè)務(wù)姚經(jīng)理:18950029581

  • 關(guān)注

    關(guān)于縱橫數(shù)據(jù) 更多優(yōu)惠活動等您來拿!
    縱橫數(shù)據(jù)官方微信 掃一掃關(guān)注官方微信
  • 關(guān)閉
  • 頂部
  • 您所在的位置 : 首頁 > 新聞公告 > MySQL中CHAR和VARCHAR的區(qū)別

    MySQL中CHAR和VARCHAR的區(qū)別

    VARCHAR和CHAR是兩種最主要的字符串類型。不幸的是,很難精確地解釋這些值是怎么存儲在磁盤和內(nèi)存中的,因為這跟存儲引擎的具體實現(xiàn)有關(guān)。下面的描述假設(shè)使用的存儲引擎是InnoDB和/或者M(jìn)yISAM。如果使用的不是這兩種存儲引擎,請參考所使用的存儲引擎的文檔。

    先看看VARCHAR和CHAR值通常在磁盤上怎么存儲。請注意,存儲引擎存儲CHAR或者VARCHAR值的方式在內(nèi)存中和在磁盤上可能不一樣,所以MySQL服務(wù)器從存儲引擎讀出的值可能需要轉(zhuǎn)換為另一種存儲格式。

    VARCHAR類型

    VARCHAR類型用于存儲可變長字符串,是最常見的字符串?dāng)?shù)據(jù)類型。它比定長類型更節(jié)省空間,因為它僅使用必要的空間(例如,越短的字符串使用越少的空間)。有一種情況例外,如果MySQL表使用ROW_FORMAT=FIXED創(chuàng)建的話,每一行都會使用定長存儲,這會很浪費空間。

    VARCHAR需要使用1或2個額外字節(jié)記錄字符串的長度:如果列的最大長度小于或等于255字節(jié),則只使用1個字節(jié)表示,否則使用2個字節(jié)。假設(shè)采用latin1字符集,一個VARCHAR(10)的列需要11個字節(jié)的存儲空間。VARCHAR(1000)的列則需要1002個字節(jié),因為需要2個字節(jié)存儲長度信息。

    VARCHAR節(jié)省了存儲空間,所以對性能也有幫助。但是,由于行是變長的,在UPDATE時可能使行變得比原來更長,這就導(dǎo)致需要做額外的工作。如果一個行占用的空間增長,并且在頁內(nèi)沒有更多的空間可以存儲,在這種情況下,不同的存儲引擎的處理方式是不一樣的。例如,MyISAM會將行拆成不同的片段存儲,InnoDB則需要分裂頁來使行可以放進(jìn)頁內(nèi)。其他一些存儲引擎也許從不在原數(shù)據(jù)位置更新數(shù)據(jù)。

    VARCHAR適用情況

    下面這些情況下適用VARCHAR是合適的:

    字符串列的最大長度比平均長度大很多

    列的更新很少,所以碎片不是問題

    使用了像UTF-8這樣復(fù)雜的字符集,每個字符都使用不同的字節(jié)數(shù)進(jìn)行存儲

    CHAR類型

    CHAR類型是定長的:MySQL總是根據(jù)定義的字符串長度分配足夠的空間。當(dāng)存儲CHAR值時,MySQL會刪除所有的末尾空格。CHAR值會根據(jù)需要采用空格進(jìn)行填充以方便比較。

    CHAR適合存儲很短的字符串,或者所有值都接近同一個長度。例如,CHAR非常適合存儲密碼的MD5值,因為這是一個定長的值。對于經(jīng)常變更的數(shù)據(jù),CHAR也比VARCHAR更好,因為定長的CHAR類型不容易產(chǎn)生碎片。對于非常短的列,CHAR比VARCHAR在存儲空間上也更有效率。例如用CHAR(1)來存儲只有Y和N的值,如果采用單字節(jié)字符集只需要一個字節(jié),但是VARCHAR(1)卻需要兩個字節(jié),因為還有一個記錄長度的額外字節(jié)。


    最新推薦


    微信公眾帳號
    關(guān)注我們的微信