MySQL规范

一、MySQL数据库命名规范

  1. 数据库所有表前缀均使用项目名称首字母缩写;
  2. 数据库所有对象名称均使用小写字母,并且单词之间通过下划线分开;
  3. 数据库临时表必须以 pro_tmp_ 为前缀并且以日期 _20190917 为后缀,备份表必须以 pro_bac_ 为前缀并以时间戳为后缀;(pro为项目名称首字母缩写);
  4. 数据库所有存储相同数据的列名和列类型必须保持一致。

二、MySQL数据库基本设计规范

  1. 若无特殊说明,建表时一律采用Innodb存储引擎;

    选择合适的引擎可以提高数据库性能,如InnoDB和MyISAM,InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定;基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持;MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能;因此,其支持事务处理、支持外键、支持崩溃修复能力和并发控制是我们建表时首选的存储引擎。

  2. 数据库和表的字符集统一使用UTF8;

    数据库和表的字符集统一使用utf8,若是有字段需要存储emoji表情之类的,则将表或字段设置成utf8mb4;因为,utf8号称万国码,其无需转码、无乱码风险且节省空间,而utf8mb4又向下兼容utf8。

  3. 设计数据库时所有表和字段必须添加注释;
  4. 单个表的数据量大小控制在500万以内;
  5. 使用MySQL分区表需谨慎;
  6. 尽量满足冷热数据分离,减小表等宽度;
  7. 建立预留字段需谨慎;
  8. 数据库中禁止存储图片、文件等大的二进制数据。

三、MySQL数据库字段设计规范

  1. 优先选择符合存储需要的最小的数据类型;
  2. 避免使用TEXT、BLOB数据类型;
  3. 避免使用ENUM枚举类型;
  4. 使用TIMESTAMP(4字节)或DATETIME(8字节)类型存储时间;
  5. 财务相关的金额类数据必须使用decimal 类型。

四、MySQL索引设计规范

  1. 每张表的索引数量不超过5个;
  2. 每个Innodb 表必须有一个主键;
  3. 尽量避免使用外键约束。

五、MySQL数据库SQL开发规范

  1. 在明显不会有重复值时使用UNION ALL 而不是UNION;

    1)UNION 会把两个结果集的所有数据放到临时表中后再进行去重操作;

    2)UNION ALL 不会再对结果集进行去重操作;

  2. 把复杂、较长的SQL 拆分为为多个小SQL 执行。
posted @ 2019-09-23 14:13  技术宅home  阅读(1285)  评论(0编辑  收藏  举报