mysql中char與varchar的區別

2021-09-28 17:24:57 字數 747 閱讀 9445

在mysql 中char 和 varchar 都是儲存字串的,區別在於char有固定的長度,而varchar屬於可變長的字元型別。

char(m)型別的資料列裡,每個值都占用m個位元組,如果某個長度小於m,mysql就會在它的右邊用空格字元補足.(在檢索操作中那些填補出來的空格字元將被去掉)在varchar(m)型別的資料列裡,每個值只占用剛好夠用的位元組再加上乙個用來記錄其長度的位元組(即總長度為l+1位元組)。

char 固定長度,所以在處理速度上要比varchar快速很多,但是對費儲存空間,所以對儲存不大,但在速度上有要求的可以使用char型別。

定長的char的優勢:

一,儲存很短的資訊,比如門牌號碼101,201……這樣很短的資訊應該用char,因為varchar還要佔1個byte用於儲存首席資訊官度,本來打算節約儲存的現在得不償失。

二,固定長度的。比如使用uuid作為主鍵,那用char應該更合適。因為他固定長度,varchar動態根據長度的特性就消失了,而且還要佔1個長度資訊。

三,十分頻繁改變的column。因為varchar每次儲存都要有額外的計算,得到長度等工作,如果乙個非常頻繁改變的,那就要有很多的精力用於計算,而這些對於char來說是不需要的。

總的說來:char定長,儲存效率不如varchar,對於短資料的查詢優於varchar。因為在大資料量沒有索引的情況下,mysql查詢走的是主鍵建立的索引,通過主鍵查詢,資料量大效率的瓶頸是磁碟的io,當資料量大的時候,char是固定長度,占用的磁碟空間較大,查詢效率就降低。在不同的場景下,瓶頸是不同的。

mysql中char與varchar的區別

char是一種固定長度的型別,varchar則是一種可變長度的型別 char m 型別的資料列裡,每個值都占用m個位元組,如果某 個長度小於m,mysql就會在它的右邊用空格字元補足 在檢索操作中那些填補出來的空格字元將被去掉 在varchar m 型別的資料列裡,每個值 只占用剛好夠用的位元組再加...

mysql中char與varchar的區別分析

在mysql教程中char與varchar的區別呢,都是用來儲存字串的,只是他們的儲存方式不一樣罷了,char有固定的長度,而varchar屬於可變長的字元型別。char與varchar的區別 char 13 長度固定,如 www.jb51.net 儲存需要空間 12個字元 varchar 13 可...

mysql中char與varchar的區別分析

char與varchar的區別 char 20 長度固定,如 www.jb51.net 儲存需要空間 20個字元 varchar 20 可變長 如 www.jb51.net 需要儲存空間 12 1 13字元,從上面可以看得出來char 長度是固定的,不管你儲存的資料是多少他都會都固定的長度。而var...