命名规范
- 库、表、字段全部采用小写;
- 临时库、表名必须以 tmp 为前缀,并以日期为后缀
- 备份库、表必须以 bak 为前缀,并以日期为后缀
- 非唯一索引必须按照“idx_字段名称”进行命名
- 唯一索引必须按照“uniq_字段名称”进行命名。
设计规范
- 所有表、字段都需要增加 comment 来描述此表、字段所表示的含义
- 表必须包含 create_time 和 update_time 字段
- 存储精确浮点数必须使用 DECIMAL 替代 FLOAT 和 DOUBLE;
- 尽可能不使用 TEXT、BLOB 类型;
- 不在低基数列上建立索引
- 不建议使用外键,外键会导致表与表之间耦合,update 与 delete 操作都会涉及相关联的表
- 禁止使用存储过程、视图、触发器、Event
SQL语句规范
- 避免隐式转换
- 尽量不使用select *,只 select 需要的字段 ,读取不需要的列会增加 CPU、IO、NET 消耗,并且不能有效的利用覆盖索引。
- 禁止以 % 开头的模糊查询。
- 统计记录数使用 select count(*)
- 建议将子查询转换为关联查询