MySQL中字段類型char、varchar和text的區(qū)別
在MySQL中,char、varchar和text類型的字段都可以用來存儲字符類型的數(shù)據(jù),char、varchar都可以指定最大的字符長度,但text不可以。
它們的存儲方式和數(shù)據(jù)的檢索方式也都不一樣。
數(shù)據(jù)的檢索效率是:char
> varchar
> text
具體說明:
char:存儲定長數(shù)據(jù)很方便,CHAR字段上的索引效率級高,必須在括號里定義長度,可以有默認值,比如定義char(10),那么不論你存儲的數(shù)據(jù)是否達到了10個字節(jié),都要占去10個字節(jié)的空間(自動用空格填充),且在檢索的時候后面的空格會隱藏掉,所以檢索出來的數(shù)據(jù)需要記得用什么trim之類的函數(shù)去過濾空格。
varchar:存儲變長數(shù)據(jù),但存儲效率沒有CHAR高,必須在括號里定義長度,可以有默認值。保存數(shù)據(jù)的時候,不進行空格自動填充,而且如果數(shù)據(jù)存在空格時,當值保存和檢索時尾部的空格仍會保留。另外,varchar類型的實際長度是它的值的實際長度+1,這一個字節(jié)用于保存實際使用了多大的長度。
text:存儲可變長度的非Unicode數(shù)據(jù),最大長度為2^31-1個字符。text列不能有默認值,存儲或檢索過程中,不存在大小寫轉換,后面如果指定長度,不會報錯誤,但是這個長度是不起作用的,意思就是你插入數(shù)據(jù)的時候,超過你指定的長度還是可以正常插入。
關于存儲空間:
在使用UTF8字符集的時候,MySQL手冊上是這樣描述的:
- 基本拉丁字母、數(shù)字和標點符號使用一個字節(jié);
- 大多數(shù)的歐洲和中東手寫字母適合兩個字節(jié)序列:擴展的拉丁字母(包括發(fā)音符號、長音符號、重音符號、低音符號和其它音符)、西里爾字母、希臘語、亞美尼亞語、希伯來語、阿拉伯語、敘利亞語和其它語言;
- 韓語、中文和日本象形文字使用三個字節(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列的存儲效率
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接
相關文章
mysql 5.7.13 安裝配置方法圖文教程(linux)
這篇文章主要為大家詳細介紹了linux下mysql 5.7.13 安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下2016-06-06MySQL中用通用查詢?nèi)罩菊页霾樵兇螖?shù)最多的語句的教程
這篇文章主要介紹了MySQL中用通用查詢?nèi)罩菊页霾樵兇螖?shù)最多的語句的教程,文中附帶了通用查詢?nèi)罩镜拈_啟和清除技巧,需要的朋友可以參考下2015-12-12解決Navicat遠程連接MySQL出現(xiàn) 10060 unknow error的方法
這篇文章主要介紹了解決Navicat遠程連接MySQL出現(xiàn) 10060 unknow error的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12MySQL中order?by排序時數(shù)據(jù)存在null則排序在最前面的方法
order by排序是最常用的功能,但是排序有時會遇到數(shù)據(jù)為空null的情況,這樣排序就會亂了,這篇文章主要給大家介紹了關于MySQL中order?by排序時數(shù)據(jù)存在null則排序在最前面的相關資料,需要的朋友可以參考下2024-06-06mysql 獲取規(guī)定時間段內(nèi)的統(tǒng)計數(shù)據(jù)
這篇文章主要介紹了mysql 獲取規(guī)定時間段內(nèi)的統(tǒng)計數(shù)據(jù)的相關資料,需要的朋友可以參考下2017-05-05史上最簡單的MySQL數(shù)據(jù)備份與還原教程(下)(三十七)
這篇文章主要為大家詳細介紹了史上最簡單的MySQL數(shù)據(jù)備份與還原教程下篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10