zoukankan      html  css  js  c++  java
  • 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 执行。
  • 相关阅读:
    cf406E Hamming Triples (推公式)
    cf1076E Vasya and a Tree (线段树)
    LOJ2503 NOIP2014 解方程 【HASH】
    vue+antd 解决的rowKey未指定报错Each record in table should have a unique `key` prop,or set `rowKey` to an unique primary key.
    vue 引入第一个elementui组件
    bootstrap导航和table
    垃圾回收jstat术语
    jmap heap 分析
    高内存分析
    expalin精讲
  • 原文地址:https://www.cnblogs.com/sjshare/p/11572014.html
Copyright © 2011-2022 走看看