標籤:mysql 資料庫 效率 最優
MySQL資料庫的資料類型非常多,選擇正確的資料類型對於獲得高效能至關重要。資料的儲存和儲存引擎有關,不同的儲存引擎儲存相同類型的資料時可能方式不一樣。
一般把握以下幾點:
更小的通常更好
一般情況下,應該儘可能使用正確儲存資料的最小資料類型。更小的資料類型通常更快。
簡單就好
簡單的資料類型的操作通常需要更少的CPU周期。
盡量避免使用null,通常情況下最好指定列為NOT NULL。
可為null的列使得索引、索引統計和值比較都更複雜。
可為null的列會使用更多的儲存空間,在MySQL裡面做特殊處理。
資料類型分析
整數
MySQL提供了幾種整數類型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。分別使用8、16、24、32、64位儲存空間。
整數類型有可選的UNSIGNED屬性,表示不允許負值(這樣可以擴大正數的範圍)。
對於儲存和計算來說INT(11) 和INT(20)是相同的,只是規定了MySQL的一些互動工具用來顯示的字元的個數。
實數
字串類型
MySQL提供了幾種字串類型:VARCHAR、CHAR。VARCHAR用來儲存可變長度的字串。
VARCHAR比定長字串更節省空間的,因為它僅使用必要的空間,所以對效能也有協助。但在update時需要比原來更長,這就導致額外的工作。
VARCHAR最適合字串列的最大長度比平均長度大很多,列的更新很少。
CHAR類型是定長的。MySQL在哪個是根據定義的字串長度分配足夠的空間。
儲存char值是,MySQL會刪除所有的末尾空格。
char適合存放很短的字串,所有的長度都接近一個長度的資料,如MD5值。
慷慨是不明智的。VARCHAR(5)和VARCHAR(200)儲存‘hello’的空間開銷是一樣的。但是更長的列會消耗更多的記憶體。
BOLB和TEXT類型
使用枚舉代替字串類型
日期和時間類型
DATETIME存放的時ANSI標準定義的日期和時間表示方法,精確到秒。
TIMSTAMP儲存了從1970年1月1日午夜以來的秒數,它和UNIX時間戳記相同。
除了特殊行為之外,通常也應該盡量使用TIMESTAMP,因為它比DATETIME空間效率更高。
本文出自 “底小高大” 部落格,請務必保留此出處http://3157689.blog.51cto.com/3147689/1697394
MYSQL 資料類型