字段类型优先级
1 数字类型
1.1 整型
1.2 实数类型
DECIMAL(18,9) 占用9个字节,9个整数(4个字节),9个小数(4个字节),小数点一个字节,总占9个字节。如果设计到精确计算一一定要使用DECIMAL,例如金融系统。
代理主键一般int就够用了,因为int可以存储40亿的数据。
也就是优先考虑数字类型,比如电话号码也可以使用bigint来存储可以节约存储空间。
2 日期类型与二进制类型
常用DateTime:
- 占用8个字节
- 与时区无关
- 可保存毫秒
- 可保存时间范围大
注意:一般不要使用字符串保存字符串类型。
TIMESTAMP时间戳,占用四个字节: - 时间精确1970-01-01到203801-19(也就是只能到38年)
- 精确到秒
- 采用整型存储
- 依赖于时区
- 自动更新(也就是说插入数据的时候会自动存储)
3 字符串类型
VarChar :
1 使用最小的符合需求的长度。
2 VarChar(255)以下使用额外一个字节保存长度。
3 VarChar(255)以上使用两个字节保存长度。
4 varchar 变更长度的时候会锁表。
注意:是否需要设置为255呢?尽可能选择满足业务需求更短的varchar。
适合存储波动大的数据。适合存储数据不经常变更的数据。适合保存多字节字符(例如utf-8中文编码)
Char类型:
1 char 最大长度为255
2 char 类型会自动删除末尾的空格
3 char 检索效率比varchar 高
适合存储波动不大的数据。适合存储短字符串。char类型适合存储经常需要更新的字段。
创建表的时候: