MySQL我的收藏Java工程师知识树

MySQL-数据库规范

2021-02-17  本文已影响0人  HughJin

命名规范

  1. 库名、表名、字段名
  1. 新建表具备统一前缀,对相关功能的实体应当使用相同前缀,如acl_xxx,house_xxx;其中前缀通常为这个实体的模块或依赖主实体对象的名字,通常来讲表名为:业务动作类型,或是业务类型

  2. 临时表具备统一后缀,以tmp或tmp加日期为后缀,如record_tmp, record_tmp20201227

  3. 备份表具备统一后缀,以bak或bak加日期为后缀,如record_bak, record_bak20201227

库表字段设计规范

  1. 拆分大字段和访问频率低的字段,分离冷热数据。

  2. 预估数据量超过100W时采用合适的分库分表策略。

  3. 避免使用TEXT、BLOB类型,varchar字段性能比text高很多,实在避免不了blob,请拆表。

  4. 用DECIMAL代替FLOAT和DOUBLE 存储精确浮点数。

  5. 将字符转化为数字、使用TINYINT 来代替ENUM、SET类型。tinyint(1)

  6. 所有必填字段均定义为NOT NULL,并设置默认值。

  7. MySQL5.6 及以后的版本中建议优先使用datetime存储时间。

  8. 禁止在数据库中明文存储密码,请把密码加密后存储。

  9. 各数值类型存储所需字节数及取值范围如下


  10. 通用字段参考

字段名称 字段 字段类型 备注
创建人 create_user varchar(32) user id
创建时间 create_time datetime
修改人 update_user varchar(32) user id
修改时间 update_time datetime
删除人 delete_user varchar(32) user id
删除标记 delete_flag tinyint(1)
删除时间 delete_time datetime
启用标记 enable_flag tinyint(1)

索引规范

  1. 索引的数量
  1. 主键准则
  1. 重要的SQL尽量被索引
  1. 多表JOIN的字段注意下以下几方面
  1. 禁止使用外键

  2. 索引禁忌

  1. 命名:
  1. 无法使用索引

SQL规范

数据库表容量规范

上一篇 下一篇

猜你喜欢

热点阅读