#### 1. varchar 和 char 共同點(diǎn) ---- varchar 和 char 是 MySQL 中的兩種數(shù)據(jù)類型,都是用來存儲(chǔ)字符串的。 #### 2. varchar 和 char 區(qū)別 ---- 一、長度是否可變 varchar 類型的長度是可變的,而 char 類型的長度是固定的 char 類型是一個(gè)定長的字段,以 char(10) 為例,不管真實(shí)的存儲(chǔ)內(nèi)容多大或者是占了多少空間,都會(huì)消耗掉 10 個(gè)字符的空間 坦通俗來講,當(dāng)定義為 char(10) 時(shí),即使插入的內(nèi)容是 `'abc'` 3 個(gè)字符,它依然會(huì)占用 10 個(gè)字節(jié),其中包含了 7 個(gè)空字節(jié) 二、存儲(chǔ)長度 char 長度最大為 255 個(gè)字符,varchar 長度最大為 65535 個(gè)字符 三、檢索效率方面 varchar 類型的查找效率比較低,而 char 類型的查找效率比較高 #### 3. varchar 和 char 的選擇 --- 存儲(chǔ)的字符長度是可變化的,建議使用 varchar 類型,它可以節(jié)省存儲(chǔ)空間。varchar 最常見的使用場(chǎng)景有: 昵稱,地址 存儲(chǔ)的字符串的長度是固定不變的,建議使用 char 類型,這種場(chǎng)景下選用它的不會(huì)浪費(fèi)存儲(chǔ)空間,效率還比較高。使用場(chǎng)景:使用 md5 加密的密碼長度固定為 32 位字符 總結(jié): 可變長度使用 varchar,固定長度使用 char