1. 语法规范
- 每条命令用 ;结尾
- 每条命令可以根据需要进行缩进或换行
单行注释:#注释文字
或者,— 注释文字(注意—后有一个空格)
多行注释:/ 注释文字 /
- 数据库里的字符串表示用单引号,表示空字符串用(’’)两个单引号
- 所有表和字段都需要添加注释
2. 命名规范
- 库名、表名、字段名必须使用小写字母,并采用下划线分割
- 库名、表名、字段名禁止超过32个字符
- 库名、表名、字段名禁止使用MySQL保留字
3. 使用技巧
- MySQL 本身不区分大小写,但建议语句输入时:关键字大写,库名、表名、列名均小写
- 禁止使用不含字段列表的 INSERT 语句
- 尽可能把所有列/字段定义为 NOT NULL
- 存储年使用 YEAR 类型。存储日期使用 DATE 类型。 存储时间(精确到秒)建议使用 TIMESTAMP 类型
- 将大字段、访问频率低的字段拆分到单独的表中存储,分离冷热数据。
- 用 IN 代替 OR 。SQL 语句中 IN 包含的值不应过多,应少于1000个
- 不在低基数列上建立索引,例如“性别”
.用 UNION ALL 代替 UNION
禁止使用 order by rand()。
- SELECT 只获取必要的字段,禁⽌使用 SELECT *
- 尽量避免使用外键约束
- 避免使用子查询,可以把子查询优化为 join 操作
- 避免使用 JOIN 关联太多的表
- 在明显不会有重复值时使用 UNION ALL 而不是 UNION
说明:MySQL 在 Windows 系统下不区分大小写,但在 Linux 系统下默认区分大小写。(一般建议统一使用小写字母,并且 InnoDB 引擎在其内部都是以小写字母方式来存储数据库名和表名的。这样可以有效的防止 MySQL 产生大小写问题。)
4. 设计规范
- 数据库和表的字符集统一使用UTF8
- 使用INNODB存储引擎
- 表必须有主键,推荐使用UNSIGNED自增列作为主键
- 禁止使用分区表
- 建议使用UNSIGNED存储非负数值
- INT类型固定占用4字节存储
- .禁止冗余索引
- 禁止重复索引
- 禁止在数据库中存储明文密码

