Mysql基础知识之数据库字段设计规范

作者: JONE 分类: PHPer 发布时间: 2020-08-23 22:48

优先选择符合存储需要的最小的数据类型

将字符串转化为数字类型存储,例如将ip地址转为整数类型
VARCHAR(N)中的N代表的是字符数(即可以存储255个汉字),而不是字节数
使用UTF8存储汉字 Varchar(255)=765个字节
过大的长度会消耗更多的内存

避免使用TEXT、BLOB数据类型

TinyText、Text、 MidumText、 LongText
建议把BLOB或是TEXT列分离到单独的扩展表中
TEXT或BLOB类型只能使用前缀索引

避免使用ENUM数据类型

修改ENUM值需要使用 ALTER语句
ENUM类型的 ORDER BY操作效率低,需要额外操作
禁止使用数值作为ENUM的枚举值

尽可能把所有列定义为 NOT NULL

索引NULL列需要额外的空间来保存,所以要占用更多的空间
进行比较和计算时要对NULL值做特别的处理

使用 TIMESTAMP或 DATETIME类型存储时间

TIMESTAMP1970-01-0100:00:01~2038-01-19 03:14:07
TIMESTAMP占用4字节和NT相同,但比NT可读性高
超出 TIMESTAMP取值范围的使用 DATETIME类型

同财务相关的金额类数据,必须使用 decima类型

1,非精准浮点:float、double
2.精准浮点:decimal
同财务相关的金额类数据,必须使用 decimal类型
Decima类型为精准浮点数,在计算时不会丢失精度
占用空间由定义的宽度决定
可用于存储比 bigint更大的整数数据