char、varchar、text的區別?

①CHAR是一種固定長度的類型,適合用在身份證號碼、手機號碼等定。,VARCHAR則是一種可變長度的類型。適合用在長度可變的屬性。 text不設置長度, 當不知道屬性的最大長度時,適合用text。

②按照查詢速度: char最快, varchar次之,text最慢。

也就是說,定義一個char[10]和varchar[10],如果存進去的是‘csdn’,那麼char所佔的長度依然爲10,除了字符‘csdn’外,後面跟六個空格,而varchar就立馬把長度變爲4了,取數據的時候,char類型的要用trim()去掉多餘的空格,而varchar是不需要的。儘管如此,char的存取數度還是要比varchar要快得多,因爲其長度固定,方便程序的存儲與查找;但是char也爲此付出的是空間的代價,因爲其長度固定,所以難免會有多餘的空格佔位符佔據空間,可謂是以空間換取時間效率

③在新版本的mysql中char(n)和varchar(n)中的n表示的都是字符數

其中char中的n最大長度是255個字符,如果是utf8編碼方式, 那麼char類型佔255 * 3個字節。(utf8下一個字符佔用1至3個字節)

varchar最大空間是65535個字節, 存放字符數量跟字符集有關係;varchar實際範圍是65532或65533, 因爲內容頭部會佔用1或2個字節保存該字符串的長度;如果字段default null(即默認值爲空),整條記錄還需要1個字節保存默認值null。如果是utf8編碼, 那麼varchar最多存65532/3 = 21844個字符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章