项目准备上云,目前拟用腾讯云,故大多数开发规范培训都相似Mysql的相关的建议,毕竟底层实现就是为Mysql。
share 模式 与 单体 模式通用规范
- 只使用InnoDB存储引擎【默认】,避免使用MyISAM引擎
- 使用utf8或utf8mb4
- 不在数据库中存储图片、二进制文件等大数据
- 提前规划好单标规模,行数和大小
- 对象命名要使用富有意义的英文词汇,不要使用SQL关键字和特殊字符
- 字段属性尽量加上NOT NULL约束以及默认值
- 数据库用户权限按照最小分配原则
- 除核心维护人员外,其他用户不能拥有SUPEP权限账号(腾讯云权限授理通过“赤兔”上进行授权,且用户不拥有super权限)
- 避免使用简单密码
- 开发、测试和生产环境中用户权限设置保持一致
- 在数据库中存储密码明文
- 不超过80个字符
- 关键词大写
Mysql force index - 注意字段类型,避免类型转换
- 尽量不要让数据库做算术运算,交给应用层来做
- 尽量不要直接select * ,直接列出要查询的字段
- WHERE 子句使用的原则:尽量使用索引,尽量简单,尽量匹配更少的行
- like 子句的条件中,%不要是第一个字符,尽量靠后
- InnoDB标尽量避免使用类似COUNT{*}的全标扫描查询