数据库设计规范
命名规范
- 所有数据库对象名称必须小写
- 命名要做到见名识意,禁止使用MySQL保留关键字
- 临时表以temp_开头,备份表以bak_开头并以时间戳结尾
- 所有存储相同数据库的列名和列类型必须一致
基本设计规范
- 所有表必须使用Innodb存储引擎
- 所有表及字段都要有备注信息,并使用UTF8字符集
- 要做到尽量控制单表大小(单表不超过500w行),并把冷热数据分离
- 禁止使用预留字段及在表中存储大的二进制数据
索引设计规范
- 每个Innodb表都要有一个主键
- 限制表上索引的数量(不超过5个),避免建立重复和冗余索引
- 注意合理选择复合索引键值的顺序
字段设计规范
- 选择符合存储要求的最小数据类型
- 避免使用Blob或是Text类型及ENUM类型
- 每个字段尽可能具有NOT NULL属性
- 使用datetime或者timestamp类型存储时间
SQL开发规范
- 建议使用预编译语句进行数据库操作
- 避免数据类型的隐式转换
- 禁止使用select*进行查询及没有字段列表的insert操作
- 优先利用表上已经存在的索引
操作行为规范
- 超过100w行的批量写操作,要分批多次操作
- 大表操作使用pt-online-schema-change修改表结构
- 禁止为程序使用账号赋予super权限
- 对于程序连接数据库账号,遵循权限最小原则(禁止跨库,禁止drop权限)