整數類型性能
- 存儲:tinyint,smallint,mediumint,int,bigint
- 屬性:unsigned
- 長度:能夠爲整數類型指定寬度,但該操做不會限制值的存儲範圍,隻影響字符顯示個數
實數類型排序
- 存儲:float,double,decimal
- decimal(all_length,right_length)可存儲比bigint還大的整數,能夠存儲精確小數
字符串類型ci
- varchar,char,text,blob
- varchar類型用於存儲可變長字符串,varchar使用1個或2個額外字節記錄字符串的長度,更節省空間,
- varchar長度(字符),若是存儲字符超出指定長度,會被截斷
- char是定長的(字符),根據設定長度分配存儲空間,達不到長度會用空格填充,超出長度,會被截斷
- char適合存儲很短的字符串,或者全部值都接近同一個長度
- 常常變動的數據,char比varchar更好,char不容易產生碎片
- 儘可能避免使用blob/text類型,查詢會用到臨時表,致使嚴重性能開銷
枚舉 enumrem
- 緊湊,把列表值壓縮到一個或兩個字節,節省空間
- 內部存儲是整數
- 避免使用數字做爲枚舉的常量
- 排序是按照內部存儲的整數排序
日期和時間字符串
- timestamp比datetime空間效率高
- 微秒能夠使用bigint
列屬性效率
auto_increment,default,not NULL,zerofilldate