home1.gif

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字节存储
  • .禁止冗余索引
  • 禁止重复索引
  • 禁止在数据库中存储明文密码

end1.gif