1,数据库内部非常用功能使用规范
1)、尽量不使用存储过程 、函数、触发器等
2)、避免使用 外键' ,主子表一致性由业务程序来保证
2,库、表、字段、索引命名规范
1)、不以数字打头及特殊字符打头
2)、命名避免使用MYSQL相关关键字
3)、命名长度尽量控制在32个英文字符以内
4)、多个单词以下划线 '_' 分隔保证语义清晰
5)、不添加如 a_、t_ 类似无明显含义的字符
6)、普通索引命名以 'ind_' 或' idx_' 开头
3,字段及索引设计规范
1)、主键字段类型一律用bigint或无符号bigint (无特殊考虑默认自增) 尽量以 '中性' (与业务无关) 字段存在
2)、尽量使用varchar 或 tinyint 来替换 char 类型字段
3)、varchar 字段类型长度尽量控制在191或255以内 [uft8mb4对应191 、 uft8 对应255]
4)、日期/时间存储建议直接使用datetime 不推荐使用 timestamp或bigint/int
5)、所有字段特别是索引字段尽量NOT NULL并增加默认值
6)、尽量不使用blob类型字段,不常检索的text 、blob等大字段拆分存储
7)、不同表之间具有关联关系字段,类型及其类型长度必须一致
8)、尽量以一个索引 '覆盖尽量多' 查询,避免只创建单列索引
9)、单表字段个数尽量控制在12个以内,索引个数尽量控制在6个左右
10)、所有表及其字段都尽量增加 '注释'
4,SQL书写规范
1)、拒绝全表扫描,带条件的查询务必走索引
2)、按需返回字段而不是统一 select *
3)、尽量业务端排序,减少数据库端order by
4)、尽量避免对where条件字段进行计算
5)、分页查询避免直接使用limit xxx,yyy
6)、插入操作采用insert into t1(field1,field2) 方式
7)、查询条件变量传入拒绝SQL拼接考虑prepare