基本原则
1.选择小的类型 -- 保证足够的同时越小越好
可以选择INT就不选择BIGINT
2.简单
可以用整型就不用字符型,字符型占用空间运算较难等
3.尽量避免NULL
整型
TINYINT-8
SMALLINT-16
MEDIUMINT-24
INT-32
BIGINT-64
其中有unsigned属性则无负数,也就是大概会提升一倍的表示范围
浮点数
FLOAT-4
DOUBLE-8(浮点数默认计算类型)
DECIMAL(一般用于绝对小数点精确要求的数据)
当要存储的数很大时可以使用BIGINT代替DECIMAL,根据小数位数乘以对应倍数即可,还可以将整数部分与小数部分分开存放
字符型
VARCHAR-存储可变长字符串
适用场景:
最大长度比平均长度大很多;
列的更新很少;
使用了UTF-8复杂字符集
CHAR-定长
使用于长度很短且接近定长的字符串,如MD5加密后的字符串
BLOB-长二进制字符
TEXT-长字符串
枚举-将字符串以整数类型存储
日期和时间类型
1.DATETIME--适用于大范围值
2.TIMESTAMMP范围较小,与时区有关,能自动更新(尽量使用)
注意:
有些整数类型可以添加宽度如INT(11),这不会改变INT能表示的范围,只是在某些客户端限制了能显示的字符的个数