zoukankan      html  css  js  c++  java
  • MySQL数据库开发规范

    MySQL数据库开发规范

    一、命名规范
    1.库名、表名、字段名必须使用小写字母,并采用下划线分割
    2.库名、表名、字段名中禁止使用‘-’(减号)或其它关联字符(如to、from等)
    3.库名、表名、字段名禁止超过32个字符,需要见名知意
    4.视图以_view结尾、事件以_event结尾,触发器以_triger结尾,存储过程以_proc结尾,函数以_func结尾
    5.普通索引以idx_col1_col2名命,唯一索引以uk_col1_col2开头
    6.临时库、表须以_tmp+日期为后缀(如eip_con_tmp20200701)

    (例)库名规范写法:cms_general
    表名规范写法:eip_con
    字段名规范写法:con_code
    普通索引规范写法:idx_con_type
    唯一索引规范写法:uk_con_code
    视图规范写法:ipo_po_view
    事件规范写法:ipo_po_event
    触发器规范写法:ipo_po_triger
    存储过程规范写法:ipo_po_proc
    函数的规范写法:ipo_po_func

    二、库、表基础规范
    1.使用Innodb存储引擎
    2.库、表字符编码统一使用utf8mb4,校对字符集使用utf8mb4_general_ci
    3.给所有的表和字段添加注释,对含有字典的字段要在注释中标明数据字典
    4.单表字段不应超过50,超过50个字段的单表应垂直分表
    5.所有的表都应显示指定主键,除业务主键外还应设置递增的逻辑主键(无意义主键)保证记录的顺序存取
    6.禁止使用外键,避免插入记录时做主表校验
    7.尽量不要使用存储过程、视图,禁止使用触发器、事件影响debug问题定位和数据库不记录log
    8.数据库中不允许使用明文密码,使用加密工具对数据进行脱敏后存储
    三、字段规范
    1.对于长度固定且更新频繁的列使用char字符类型
    2.varchar(M)类型的M值不得超过4000,避免影响单行记录最大字符数
    3.对于存放容量很大,操作不频繁的值可以使用text类型,text类型可变长,在20字节以后的内容在数据页以外的空间存储,多一次寻址,避免创建索引
    4.status、type、flag等字段使用tinyint类型
    5.对于数据类型字段使用unsigned存储非复数值
    6.主键建议使用bigint unsigned
    7.时间类型的字段建议优先使用timestamp,timestamp占4字节,datetime占8字节,且两者时间范围不同(timestamp只支持1970-01-01 08:01 ~ 2038-01-19 11:14:07)
    8.索引字段一定要设置成not null,否则影响优化器对索引的选择
    9.字段尽量使用not null,如果不能保证insert时一定有值,应设定default值并指定含义
    10.不同表中的同一意义的字段属性必须相同(字段名、数据类型、字段长度)
    四、SQL规范
    1.杜绝使用 select *
    2.确定返回结果只有一条时使用limit 1
    3.避免隐式转换对性能的影响
    4.禁止在where条件上使用函数,会导致索引失效,如必须使用应放在右侧的常量上
    5.使用like模糊匹配时不要将%放在首位导致索引失效
    6.尽量将复杂的SQL拆分成简单SQL(不以代码处理复杂为由),若查询条件涉及多个索引可以拆分成多个SQL再讲结果union all
    7.使用join代替子查询,避免临时表的建立
    8.在没有去重要求的操作使用union all代替union,减少排序的cost
    9.分页方式应将上一次的分页边界值放在where条件中再limit
    10.杜绝使用恒真的where条件,避免SQL注入
    11.业务SQL不允许出现DDL语句
    五、行为规范:
    1.禁止在数据运维组不知情的情况下大批量导入导出数据
    2.禁止对大表执行ctas(锁表)以及insert into ... select(阻断其它会话DML)操作
    3.备份恢复数据避开高峰期,由数据运维组操作

  • 相关阅读:
    Java安全之JNDI注入
    Visual Studio 2019 升级16.8之后(升级.Net 5),RazorTagHelper任务意外失败
    .Net Core 3.1升级 .Net 5后出现代码错误 rzc generate exited with code 1.
    重走py 之路 ——普通操作与函数(三)
    重走py 之路 ——字典和集合(二)
    设计模式结(完结篇)
    重走py 之路 ——列表(一)
    RestfulApi 学习笔记——分页和排序(五)
    RestfulApi 学习笔记——查询与过滤还有搜索(五)
    Android开发 Error:The number of method references in a .dex file cannot exceed 64K.Android开发 Error:The number of method references in a .dex file cannot exceed 64K
  • 原文地址:https://www.cnblogs.com/q1359720840/p/13522294.html
Copyright © 2011-2022 走看看