mysql中char與varchar的區別

2021-04-15 14:27:18 字數 778 閱讀 7686

char是一種固定長度的型別,varchar則是一種可變長度的型別

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

在mysql中用來判斷是否需要進行對據列型別轉換的規則

1、在乙個資料表裡,如果每乙個資料列的長度都是固定的,那麼每乙個資料行的長度也將是固定的.

2、只要資料表裡有乙個資料列的長度的可變的,那麼各資料行的長度都是可變的.

3、如果某個資料表裡的資料行的長度是可變的,那麼,為了節約儲存空間,mysql會把這個資料表裡的固定長度型別的資料列轉換為相應的可變長度型別.

例外:長度小於4個字元的char資料列不會被轉換為varchar型別

對於myisam表,盡量使用char,對於那些經常需要修改而容易形成碎片的myisam和isam資料表就更是如此

對於myisam表,盡量使用char,對於那些經常需要修改而容易形成碎片的myisam和isam資料表就更是如此,它的缺點就是占用磁碟空間;

對於innodb表,因為它的資料行內部儲存格式對固定長度的資料行和可變長度的資料行不加區分(所有資料行共用乙個表頭部分,這個標頭部分存放著指向 各有關資料列的指標),所以使用char型別不見得會比使用varchar型別好。事實上,因為char型別通常要比varchar型別占用更多的空間, 所以從減少空間佔用量和減少磁碟i/o的角度,使用varchar型別反而更有利.

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...

mysql中char與varchar的區別分析

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