天天看點

MySql中的char和varchar

      VARCHAR是一種比CHAR更加靈活的資料類型,同樣用于表示字元資料,但是VARCHAR可以儲存可變長度的字元串。其中M代表該資料類型所允許儲存的字元串的最大長度,隻要長度小于該最大值的字元串都可以被儲存在該資料類型中。是以,對于那些難以估計确切長度的資料對象來說,使用VARCHAR資料類型更加明智。VARCHAR資料類型所支援的最大長度也是255個字元。

        CHAR類型和VARCHAR類型長度範圍都是0~255之間的大小。他們之間的差别在于MySQL處理存儲的方式:         CHAR 把這個大小視為值的準确大小(用空格填補比較短的值)。         VARCHAR 類型把它視為最大值并且隻使用了存儲字元串實際上需要的位元組數(增加了一個額外的位元組記錄長度)。因而,較短的值當被插入一個語句為VARCHAR類型的字段時,将不會用空格填補(然而,較長的值仍然被截短 )。

      VARCHAR型和CHAR型資料的這個差别是細微的,但是非常重要。他們都是用來儲存字元串長度小于255的字元。

  假如你向一個長度為四十個字元的VARCHAR型字段中輸入資料BIll GAtES。當你以後從這個字段中取出此資料時,你取出的資料其長度為十個字元——字元串Bill Gates的長度。 現在假如你把字元串輸入一個長度為四十個字元的CHAR型字段中,那麼當你取出資料時,所取出的資料長度将是四十個字元。字元串的後面會被附加多餘的空格。

  當你建立自己的站點時,你會發現使用VARCHAR型字段要比CHAR型字段友善的多。使用VARCHAR型字段時,你不需要為剪掉你資料中多餘的空格而操心。

  VARCHAR型字段的另一個突出的好處是它可以比CHAR型字段占用更少的記憶體和硬碟空間。當你的資料庫很大時,這種記憶體和磁盤空間的節省會變得非常重要.

  雖然VARCHAR使用起來較為靈活,但是從整個系統的性能角度來說,CHAR資料類型的處理速度更快,有時甚至可以超出VARCHAR處理速度的50%。是以,使用者在設計資料庫時應當綜合考慮各方面的因素,以求達到最佳的平衡。