欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中字段類型char、varchar和text的區(qū)別

 更新時間:2019年03月15日 14:20:35   作者:CODETC  
今天小編就為大家分享一篇關(guān)于MySQL中字段類型char、varchar和text的區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

在MySQL中,char、varchar和text類型的字段都可以用來存儲字符類型的數(shù)據(jù),char、varchar都可以指定最大的字符長度,但text不可以。

它們的存儲方式和數(shù)據(jù)的檢索方式也都不一樣。

數(shù)據(jù)的檢索效率是:char > varchar > text

具體說明:

char:存儲定長數(shù)據(jù)很方便,CHAR字段上的索引效率級高,必須在括號里定義長度,可以有默認(rèn)值,比如定義char(10),那么不論你存儲的數(shù)據(jù)是否達到了10個字節(jié),都要占去10個字節(jié)的空間(自動用空格填充),且在檢索的時候后面的空格會隱藏掉,所以檢索出來的數(shù)據(jù)需要記得用什么trim之類的函數(shù)去過濾空格。

varchar:存儲變長數(shù)據(jù),但存儲效率沒有CHAR高,必須在括號里定義長度,可以有默認(rèn)值。保存數(shù)據(jù)的時候,不進行空格自動填充,而且如果數(shù)據(jù)存在空格時,當(dāng)值保存和檢索時尾部的空格仍會保留。另外,varchar類型的實際長度是它的值的實際長度+1,這一個字節(jié)用于保存實際使用了多大的長度。

text:存儲可變長度的非Unicode數(shù)據(jù),最大長度為2^31-1個字符。text列不能有默認(rèn)值,存儲或檢索過程中,不存在大小寫轉(zhuǎn)換,后面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入數(shù)據(jù)的時候,超過你指定的長度還是可以正常插入。

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

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

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

結(jié)論:

1、經(jīng)常變化的字段用varchar;

2、知道固定長度的用char;

3、超過255字節(jié)的只能用varchar或者text;

4、能用varchar的地方不用text;

5、能夠用數(shù)字類型的字段盡量選擇數(shù)字類型而不用字符串類型,這會降低查詢和連接的性能,并會增加存儲開銷。這是因為引擎在處理查詢和連接回逐個比較字符串中每一個字符,而對于數(shù)字型而言只需要比較一次就夠了;

6、同一張表出現(xiàn)多個大字段,能合并時盡量合并,不能合并時考慮分表,原因請考 優(yōu)化InnoDB表BLOB,TEXT列的存儲效率

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Mysql給普通分頁查詢結(jié)果加序號實操

    Mysql給普通分頁查詢結(jié)果加序號實操

    這篇文章主要介紹了Mysql給普通分頁查詢結(jié)果加序號實操,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL中ONLY_FULL_GROUP_BY模式的使用

    MySQL中ONLY_FULL_GROUP_BY模式的使用

    ONLY_FULL_GROUP_BY是MySQL中一個重要的SQL模式,確保在使用GROUP BY時,所有非聚合函數(shù)列必須在GROUP BY子句中出現(xiàn),避免數(shù)據(jù)歧義和不確定性,下面就來介紹一下具體使用
    2024-09-09
  • MySQL8.0報錯Public?Key?Retrieval?is?not?allowed的原因及解決方法

    MySQL8.0報錯Public?Key?Retrieval?is?not?allowed的原因及解決方法

    這篇文章主要給大家介紹了MySQL8.0報錯Public?Key?Retrieval?is?not?allowed的原因及解決方法,文中通過代碼示例和圖文介紹的非常詳細(xì),有遇到相同問題的朋友可以參考閱讀一下
    2024-01-01
  • mysql中文顯示為問號?的問題及解決

    mysql中文顯示為問號?的問題及解決

    這篇文章主要介紹了mysql中文顯示為問號?的問題及解決方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • MySQL之導(dǎo)出整個及單個表數(shù)據(jù)的操作

    MySQL之導(dǎo)出整個及單個表數(shù)據(jù)的操作

    這篇文章主要介紹了MySQL之導(dǎo)出整個及單個表數(shù)據(jù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • MySQL中Stmt 預(yù)處理提高效率問題的小研究

    MySQL中Stmt 預(yù)處理提高效率問題的小研究

    在oracle數(shù)據(jù)庫中,有一個變量綁定的用法,很多人都比較熟悉,可以調(diào)高數(shù)據(jù)庫效率,應(yīng)對高并發(fā)等,好吧,這其中并不包括我,當(dāng)同事問我MySQL中有沒有類似的寫法時,我是很茫然的,于是就上網(wǎng)查,找到了如下一種寫法
    2011-08-08
  • mysql的group?by使用及多字段分組

    mysql的group?by使用及多字段分組

    Group?By是一種SQL查詢語句,常用于根據(jù)一個或多個列對查詢結(jié)果進行分組,本文主要介紹了mysql的group?by使用及多字段分組,感興趣的可以了解一下
    2023-09-09
  • MySQL sum后再計算percentage的多種解決辦法

    MySQL sum后再計算percentage的多種解決辦法

    這篇文章主要介紹了MySQL sum后再計算percentage的多種解決辦法,over() 函數(shù),Cross Join,Select 嵌套查詢以及 with 函數(shù)處理,文中通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • MySQL中幾種常見的嵌套查詢詳解

    MySQL中幾種常見的嵌套查詢詳解

    最近在MySQL上做了點工作,發(fā)現(xiàn)很多人都在詢問MySQL嵌套查詢的問題,下面這篇文章主要給大家介紹了關(guān)于MySQL中幾種常見的嵌套查詢,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • mysql二進制日志文件恢復(fù)數(shù)據(jù)庫

    mysql二進制日志文件恢復(fù)數(shù)據(jù)庫

    喜歡的在服務(wù)器或者數(shù)據(jù)庫上直接操作的兄弟們你值得收藏下!不然你就悲劇了。-----(當(dāng)然我也是在網(wǎng)上搜索的資料!不過自己測試通過了的!)
    2014-08-08

最新評論