【MySQL数据库开发设计规范】之行为流程规范

欢迎点开这篇文章,自我介绍一下哈,本人姑苏老陈 ,是一名JAVA开发老兵。

本文收录于 《MySQL数据库开发设计规范》专栏中,该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章,定期更新,欢迎关注,谢谢 :-)

一、前言

在我们对数据库技术方案设计的时候,我们是否有自己的设计理念或者原则,还是更多的依据自己的直觉去设计,是否曾经懊悔线上发生过的一次低级故障,可能稍微注意点就可以避免,是否想过怎么才能很好的避免,规范的价值正是我们工作的检查清单,需要我们不断从错误中积累有效经验来指导未来的工作。

本文介绍MySQL数据库开发设计规范之行为流程规范。

PS:以下规范在大型互联网公司经过了充分的验证,尤其适用于并发量大、数据量大的业务场景。

在这里插入图片描述

二、行为规范

1.【强制】禁止使用应用程序配置文件内的数据库帐号手工访问线上数据库。

2.【强制】禁止非DBA对线上数据库进行写操作,提交的SQL语句必须经过测试;
说明:如果项目组没有配置专门的DBA,可以指定一个专门的主程或高级工程师负责;

3.【强制】禁止在线上做数据库压力测试;

4.【强制】禁止从测试、开发环境直连线上数据库;

5.【强制】禁止在主库进行后台统计查询操作,避免影响线上业务,可以在离线从库上执行;

三、流程规范

1.【强制】所有的建表需要确定建立哪些索引后才可以建表上线;

2.【强制】批量导入、导出数据需要DBA或相关人员进行审查,并在执行过程中观察服务运行情况;

3.【强制】禁止有super权限的应用程序账号存在;
说明:super权限是一种特殊的权限,具有最高级的权限级别,所以一般不能授予给应用程序;

4.【强制】在建新表加字段之前,要求至少要提前3天通知dba或相关人员进行评估、优化和审核;

5.【强制】隔离线上线下环境(开发测试程序禁止访问线上数据库);

6.【强制】在对大表做表结构变更时,如修改字段属性会造成锁表,并会造成从库延迟,从而影响线上业务,必须在业务低峰期执行,统一用工具pt-online-schema-change避免锁表且降低延迟执行时间;
说明:pt-online-schema-change 是一种无锁表修改表结构的工具;

7.【强制】批量更新数据,如update,delete 操作,需要DBA或相关人员进行审查,并在执行过程中观察服务运行情况;

8.【推荐】如果出现人为误操作导致数据丢失,需要恢复数据,请在第一时间通知DBA或相关人员,并提供准确时间,误操作语句等重要线索。

9.【强制】线上数据库的变更操作必须提供对应的回滚方案;

10.【强制】批量清洗数据,需要开发和DBA或相关人员共同进行审查,应避开业务高峰期时段执行,并在执行过程中观察服务状态;

11.【强制】数据订正如删除和修改记录时,要先select ,确认无误才能执行更新语句,避免出现误删除;

12.【推荐】所有的建表操作需要提前告知该表涉及的查询sql;

13.【推荐】所有的改表结构、加索引操作都需要将涉及到所改表的查询sql发出来告知DBA等相关人员;

14.【推荐】推广活动或上线新功能必须提前通知DBA进行流量评估;

15.【推荐】不在业务高峰期批量更新、查询数据库;

16.【推荐】核心业务数据库变更需在凌晨执行;

四、总结

以上介绍了软件项目中,数据库使用时,可以遵循的一些行为流程规范。希望对大家有帮助,谢谢 :-)

附本文参考资料:

  • 阿里云官方知乎:https://www.zhihu.com/org/a-li-yun-97-77
  • 阿里云开发者官方社区:https://developer.aliyun.com/
  • 阿里开发者官方CSDN社区:https://blog.csdn.net/alitech2017?type=blog
  • 阿里云云栖号CSDN:https://blog.csdn.net/yunqiinsight/category_10231626.html
  • 阿里巴巴技术团队发布的《JAVA开发手册》泰山版
  • 阿里云开发者官方微信公众号

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姑苏老陈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值