mysql 第四十四篇文章~谈谈最基本的规范

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 第四十四篇文章~谈谈最基本的规范相关的知识,希望对你有一定的参考价值。

一 简介:今天咱们来谈谈研发规范

二 规范
   1 表
       1 选择合适的字符集和存储引擎 推荐innodb utf8mb4
       2 表名称不要包含mysql关键字,符合命名规范
       3 不建议采用外键
       4 尽量不要采用分区表,采用分库分表是最优方案
  2 列
       1 每一列都要设置comment注释 
       2 每一列最好都设置为非NULL,设置默认值
       3 varchar和char的选择 定长选择char 变长选择varchar ,字符型长度尽量不要太大,否则日后维护和创建索引会有限制
       4 datetime和timestamp的选择 1 timestamp 1 默认值系统时间和更新触发属性2 有时间限制(1970-2038) 2datetime 1插入系统时间now() 2 无默认时间及更新属性,3 相当于无时间限制,4允许为空 所以这个看需求定义
       5 集合,枚举,位图类型类型尽量不要选择
       6 对于int类型,尽量规范出 int bigint tinyint进行细化定义,能用小不要用大,并采用无符号型
       7 表主键选择(1 自增数字主键(推荐) 2 varchar类型(除非业务需要,否则尽量不要选择作为主键)),尽量避免联合主键的情况,可以采用唯一性索引进行约束
 3 索引
      1 索引尽量在建表时建立好
      2 尽量用多列索引代替多个单列索引
      3 索引的最大长度
         1 所有索引键最大长度总和不能超过1000,而且不是实际数据长度的总和,而是索引键字段定义长度的总和。
         2 正因为索引有长度限制,所以针对字符型的长度要做限制
      4 一个表中索引个数不要太多,否则会影响DML操作效率
      5 索引的命名规范要有逻辑性,最好统一为idx_
      6 索引的创建选择列要选择区分度较高的列

三 总结:

     关于创建表的规范,参考了inception审核体系和平时的一些经验.有不足和错误的地方请指正























以上是关于mysql 第四十四篇文章~谈谈最基本的规范的主要内容,如果未能解决你的问题,请参考以下文章

MySQL实战第四十四讲- 要不要使用分区表?

“全栈2019”Java第四十四章:继承

mysql 第四十五篇文章~初探MGR

mysql 第四十一篇文章~MHA一些方面的探讨一

mysql 第四十七篇文章~mysql优化之相关join

一起Talk Android吧(第四百四十四回:UI控件之DatePicker)