当前位置:   article > 正文

枚举命名规范_MySQL设计规范

枚举类型 命名规范

基础规范

  • 全部使用 InnoDB 引擎,MyISAM适用场景非常少
    • MyISAM与InnoDB区别
  • 字符集:统一使用 utf8mb4
  • 注释规范
    • 表注释必须加
    • 字段注释除了id,created_at, updated_at, is_deleted, deleted_at 字段,其他字段注释必须加上(待补充)
    • 枚举类型的,必须标明每个状态的含义
  • 少用 text/blob
  • 不在数据库里存图片
    • 大文件和照片存储在文件系统,数据库里存文件地址
  • 拒绝 大SQL, 大事务, 大批量
    • 事务/连接使用原则:即开即用,用完即关
    • 与事务无关操作放到事务外面,减少锁资源的占用
    • 不破坏一致性前提下,使用多个短事务代替长事务
    • 打散大批量更新
  • 最少授权
  • 线上数据库和测试数据库尽可能保持一致
  • 禁止明文存储机密数据,需至少两次加密(部分数据可逆运算)

命名规范

  • 术语表
  • 数据库名、表名、字段名只用小写字母、数字、下划线组合
  • 尽量使用单数形式
  • 命名长度不超过32个字符
  • 不使用select、update、order等保留字(待补充)
  • 尽量使用英文,少用或不用中文拼音
  • 临时用加上 tmp 前缀
  • 历史归档加上完整日期

字段规范

  • 字段必须定义为NOT NULL并且提供默认值
  • 显式指定自增 int/bigint 作为主键
  • 使用timestamp记录时间
  • IPv4地址采用4字节int unsigned
  • 性别、状态、是否、小范围枚举使用tinyint
  • 字符集统一使用utf8mb4

SQL规范

  • 简化每一条SQL,短事务,快速执行、无阻塞
  • 用括号显示确定AND、OR的先后顺序,避免混淆
  • 有些查询只需扫描索引,无需扫描数据(SELECT id, user FROM table WHERE id = 1234)
  • 过滤用户提交SQL,防止注入
  • 不用/少用子查询,改造成连接(JOIN)
  • 不用/少用FOR UPDATE、LOCK IN SHARE MODE,防止锁范围扩大化
  • SQL中不用/少用函数,可能造成额外开销或导致无法使用索引

索引规范

    • 显式指定自增 int/bigint unsigned not null 作为主键
    • 尽量不用外键
    • 合理利用覆盖索引,但字段尽量不超过5个
    • 长字符字段使用前缀索引
    • 及时删除冗余索引
    • 选择适当的索引顺序,选择性高条件靠前
    • 基数(Cardinality)很低的字段不创建索引
    • 采用第三方系统实现text/blob全文检索
    • 不在索引列运算
      SELECT * FROM table_name WHERE id + 1 = 6630913
      SELECT * FROM table_name WHERE id = 6630913-1
      SELECT * FROM table_name WHERE to_days(current_date) – to_days(date_col) <= 10

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要

PHP进阶架构师>>>视频、面试文档免费获取​docs.qq.com
3d524e454cf3d9a703526f7d3e911195.png

或者关注咱们下面的专栏

PHP架构师之路​zhuanlan.zhihu.com
c23ed739747c8c44446aac4542a6d0c0.png
来源:https://www.cnblogs.com/pcx105/p/10956987.html
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/83149
推荐阅读
相关标签
  

闽ICP备14008679号