Mysql中varchar和text小記 Varchar 對每個英文(ASCII)字符都占用2個字節,對一個漢字也只占用兩個字節 char 對英文(ASCII)字符占用1個字節,對一個漢字占用2個字節 Varchar 的類型不以空格填滿,比如varchar(100),但它的值只是"n",則它的值就是"n" 而char 不一樣,比如char(100),它的值是"n",而實際上它在數據庫中是"n "(n後共有99個空格,就是把它填滿為100個字節)。 由於 char是以固定長度的,所以它的速度會比varchar快得多!但程序處理起來要麻煩一點,要用trim之類的函數把兩邊的空格去掉! 注意對於使用編碼之後的char(N)/varchar(N),其中N表示當前列所允許的最大字符數.而非字節數. text類型從細說:可以分為tinytext(255長度),smalltext(65535),midumtext(int最大值),longtext(long最大值). 在mysql中,對於text類型數據和varchar/char的存儲有些不同,text類型的數據,將被存儲在元數據表之外地方,但是varchar/char將和其他列一起存儲在表數據文件中. text數據類型實際上將會大幅度增加數據庫表文件尺寸,那麼在物理存儲方面有些影響,同時對text數據的檢索和IO輸出也會增加對內存的競爭. 很多時候,我們建議將text類型特別是長度較大或者變更頻繁的數據,存儲在其他專有的平台中,例如NOSQL..本質上說,不是mysql不適合存儲text,而是在太多的情況下我們期望mysql能夠更加高效的提供小數據查詢/事務處理.