一、数据库设计规范
1.使用innodb引擎
2.数据库和表的字符集统一使用utf8
3.所有表和字段添加注释
4.单表数据量控制<500w
5.谨慎使用mysql分区,跨区查询影响性能
6.冷热数据分离,缓存
7.禁止在数据库中存储图片,文件等大的二进制数据
8.禁止在线上做数据库压力测试
9.禁止从开发和测试环境直接连线上数据库
10.禁止使用select * 查询
11.避免使用not in,会使索引失效,用not exists代替
12.避免使用子查询,尽量转化为join操作,因为子查询的结果集没有索引
13.使用in代替or
14.where从句中禁止使用函数转换和计算
二、数据库字段设计规范
1.选择符合存储需要的最小的数据类型
2.避免使用text,blob数据类型,因为他们不支持内存临时表
3.避免使用ENUM类型,因为ENUM类型的order by操作效率低
4.尽可能把所有列定义为NOT NULL
5.使用timestamp或datetime类型存储时间
使用字符串存储时间不容易计算和比较,还占用更多的空间
6.同财务相关的金融类数据必须使用decimal类型
三、数据库索引设计规范
1.限制每张表的索引数量,单张表索引不超过5个
2.每个innodb表必须有个主键
3.避免使用双引号的查询条件