大家都知道mysql的數據類型非常多,但是在設計數據表的時候,要想有不錯的性能,請注意一下幾點:
1:數據類型越小越好:例如:如果只存0-200的整數 建議使用:tinyint unsinged 更好
更小的數據類型佔用的佔用的更少的磁盤,緩存,Cpu,並且處理數據時使用CPU的週期也更少
2:簡單更好 例如:整數比字符串的操作更低,存儲IP地址或者時間時候 少用字符串,因爲字符集和校對規則使字符串比整形更復雜
3:儘量少使用NULL MySQL處理NULL字段很複雜,比較的時候,如果這個字段有索引,會耗時
下面說一下INT字段的優化:
int 有: tinyint 1個字節 存儲範圍 -128到127 unsigned 0-255
smallint 2個字節 存儲範圍 -32,768 到 32,767 unsigned 0-65535
mediumint 3個字節 存儲範圍 -8388608到8388607 unsigned 0-16777215
int 4個字節 存儲範圍 -2,147,483,648到 2,147,483,647 unsigned 0到4294967295
biginr 8個字節 存儲範圍 -9223372036854775808到9223372036854775807 unsigned 0-18446744073709551615
優化注意事項:
1:int(3) =int(10) int(n) 對數據存儲的大小沒有限制 ,限制存儲範圍的爲數據類型 n:左右只是在你設置字段填充0的時候 不足N的位數的時候填充0
2:int(3) > tiny(3) int(3)在存儲的時候佔用磁盤要比 tinyint(3)要大 能選擇tinyint 不選則samllint
3:可以用字段的unsigned提升存值範圍,無符號和有有符號 使用相同的空間,有相同的性能。
4:如果一個字段中只有幾個固定的整數 儘量使用枚舉 不用 整數類型