字段型別char 和 varchar 的區別

2021-10-09 01:16:29 字數 865 閱讀 4349

char(10) 定長 占用儲存空間 使用空格填充剩餘空位,查詢時需要去掉空格。

如果是mysql資料庫,校對規則屬於padspace類,校對是自動去掉尾部空格。

varchar(10) 不定長 節省儲存空間,但占用記憶體。

一般初學會認為,二者占用的空間是一樣的。比如說我儲存5個char,二者都是實際占用了5個char了【勘誤:varchar在實際儲存的時候會多乙個byte用來存放長度】。

varchar(10)與varchar(20)儲存空間相同,記憶體不同。記憶體按照設定的字元長度消耗。

如果字段長度相近,比如身份證、hash/md5的密碼,建議使用char

varchar盡量不要給太大,留出10%左右的字元長度即可。

首先明確的是,char的長度是不可變的,而varchar的長度是可變的,也就是說,定義乙個char[10]和varchar[10],如果存進去的

是『csdn』,那麼char所佔的長度依然為10,除了字元『csdn』外,後面跟六個空格,而varchar就立馬把長度變為4了,取資料的時

候,char型別的要用trim()去掉多餘的空格,而varchar是不需要的,儘管如此,char的訪問數度還是要比varchar要快得多,因為其

長度固定,方便程式的儲存與查詢;但是char也為此付出的是空間的代價,因為其長度固定,所以難免會有多餘的空格佔位符佔據空間,可謂是以空間換取時間

效率,而varchar是以空間效率為首位的。再者,char的儲存方式是,對英文本元(ascii)占用1個位元組,對乙個漢字占用兩個位元組;而

varchar的儲存方式是,對每個英文本元占用2個位元組,漢字也占用2個位元組,兩者的儲存資料都非unicode的字元資料。

查詢數字的速度要快於字串

定長字串快於不定長字串

MySQL資料庫中CHAR與VARCHAR之爭

在資料庫中,字元型的資料是最多的,可以佔到整個資料庫的80 以上。為此正確處理字元型的資料,對於提高資料庫的效能有很大的作用。在字元型資料中,用的最多的就是char與varchar兩種型別。前面的是固定長度,而後面的是可變長度。現在我們需要考慮的是,在什麼情況下使用char字元型資料,什麼情況下採用...

MySQL資料庫中CHAR與VARCHAR之爭

在資料庫中,字元型的資料是最多的,可以佔到整個資料庫的80 以上。為此正確處理字元型的資料,對於提高資料庫的效能有很大的作用。在字元型資料中,用的最多的就是char與varchar兩種型別。前面的是固定長度,而後面的是可變長度。現在我們需要考慮的是,在什麼情況下使用char字元型資料,什麼情況下採用...

MySQL資料庫中CHAR與VARCHAR之爭

一 varchar與char字元型資料的差異 在mysql資料庫中,用的最多的字元型資料型別就是varchar和char.這兩種資料型別雖然都是用來存放字元型資料,但是無論從結構還是從數 據的儲存方式來看,兩者相差很大。而且其具體的實現方式,還依賴與儲存引擎。我這裡就以大家最常用的myisam儲存引...