乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      MySQL中char、varchar和text的區(qū)別

       月影曉風(fēng) 2017-04-13

      它們的存儲方式和數(shù)據(jù)的檢索方式都不一樣。
      數(shù)據(jù)的檢索效率是:char > varchar > text
      空間占用方面,就要具體情況具體分析了。

      1. char:存儲定長數(shù)據(jù)很方便,CHAR字段上的索引效率級高,必須在括號里定義長度,可以有默認值,比如定義char(10),那么不論你存儲的數(shù)據(jù)是否達到了10個字節(jié),都要占去10個字節(jié)的空間(自動用空格填充),且在檢索的時候后面的空格會隱藏掉,所以檢索出來的數(shù)據(jù)需要記得用什么trim之類的函數(shù)去過濾空格。
      2. varchar:存儲變長數(shù)據(jù),但存儲效率沒有CHAR高,必須在括號里定義長度,可以有默認值。保存數(shù)據(jù)的時候,不進行空格自動填充,而且如果數(shù)據(jù)存在空格時,當(dāng)值保存和檢索時尾部的空格仍會保留。另外,varchar類型的實際長度是它的值的實際長度+1,這一個字節(jié)用于保存實際使用了多大的長度。
      3. text:存儲可變長度的非Unicode數(shù)據(jù),最大長度為2^31-1個字符。text列不能有默認值,存儲或檢索過程中,不存在大小寫轉(zhuǎn)換,后面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入數(shù)據(jù)的時候,超過你指定的長度還是可以正常插入。

      關(guān)于存儲空間:

      在使用UTF8字符集的時候,手冊上是這樣描敘的:

      • 基本拉丁字母、數(shù)字和標點符號使用一個字節(jié);
      • 大多數(shù)的歐洲和中東手寫字母適合兩個字節(jié)序列:擴展的拉丁字母(包括發(fā)音符號、長音符號、重音符號、低音符號和其它音符)、西里爾字母、希臘語、亞美尼亞語、希伯來語、阿拉伯語、敘利亞語和其它語言;
      • 韓語、中文和日本象形文字使用三個字節(jié)序列。

        結(jié)論:

          • 經(jīng)常變化的字段用varchar;
          • 知道固定長度的用char;
          • 盡量用varchar;
          • 超過255字節(jié)的只能用varchar或者text;
          • 能用varchar的地方不用text;
          • 能夠用數(shù)字類型的字段盡量選擇數(shù)字類型而不用字符串類型的(電話號碼),這會降低查詢和連接的性能,并會增加存儲開銷。這是因為引擎在處理查詢和連接回逐個比較字符串中每一個字符,而對于數(shù)字型而言只需要比較一次就夠了。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多