【MySQL数据库开发设计规范】之基础规范

news2024/12/29 10:58:37

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

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

文章目录

    • 一、前言
    • 二、基础规范
    • 三、总结

一、前言

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

本文介绍MySQL数据库开发设计规范之基础规范。

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

在这里插入图片描述

二、基础规范

1.【推荐】尽量不在数据库做运算,复杂运算需移到业务应用里完成;

2.【推荐】拒绝大sql语句、拒绝大事务、拒绝大批量,可转化到业务端完成;
说明:大批量操作可能会造成严重的主从延迟,binlog日志为row格式会产生大量的日志;

3.【推荐】避免使用存储过程、触发器、函数等,容易造成业务逻辑与DB耦合;
说明:数据库擅长存储与索引、要解放数据库CPU,将计算转移到服务层、也具备更好的扩展性;

4.【强制】数据表、数据字段必须加入中文注释;
说明:后续维护的同学看到后才清楚表是干什么用的;

5.【强制】不在数据库中存储图片、文件等大数据;
说明:大文件和图片需要储在文件系统,比如阿里云OSS中;

6.【推荐】对于程序连接数据库账号,遵循权限最小原则;
说明:程序使用数据库账号只能在一个DB下使用,不准跨库使用,原则上不准分配drop权限;

7.【推荐】数据库设计时,需要问下自己是否对以后的扩展性进行了考虑;

8.【推荐】利用 pt-query-digest 定期分析slow query log并进行优化。或者利用阿里云RDS数据库自带的慢SQL监控功能。
说明:pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,并且统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。

9.【推荐】使用内网域名而不是ip连接数据库;
说明:推荐使用内网域名而不是ip连接数据库,使用域名可以更方便地管理数据库连接。当数据库服务器的IP地址发生变化时,我们只需要修改域名解析即可,不需要修改应用程序的配置文件;

10.【推荐】如果数据量或数据增长在前期规划时就较大,那么在设计评审时就应加入分表策略;
说明:分表策略是数据库性能优化的重要手段之一,它可以通过将数据分散到多个表中来减少单个表的大小和负载,从而提高查询性能。在MySQL中,常见的分表策略包括垂直分表(即按列分)和水平分表(即按行分)。

垂直分表:将一个包含多个列的大表分割成多个小表,每个小表包含原始表的一部分列。

水平分表:将数据行分散到不同的表中。比如,一个简单的水平分表示例,假设我们有一个用户表users,我们将根据用户ID进行分表。

11.【推荐】要求所有研发SQL关键字全部是小写,每个词只允许有一个空格;

三、总结

以上介绍了在进行MySQL数据库开发设计时,可以遵循的一些基础的技术规范。希望对大家有帮助,谢谢 :-)

附本文参考资料:

  • 阿里云官方知乎: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开发手册》泰山版
  • 阿里云开发者官方微信公众号

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1657209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python从0到POC编写--实用小脚本02

爆破脚本: 爆破脚本也是我们经常使用的东西 这里就简单讲讲后台爆破脚本的编写吧 在编写之前,我们先通过访问网站去看看情况 首先我们可以先登录看看 输入账号 admin ,密码 12345 后 登录失败,提示 用户名或密码错误 在输入…

水质监测设备预警系统

随着工业化进程的加快和城市化水平的提高,水质安全问题愈发受到社会各界的广泛关注。为了确保水资源的清洁与安全,水质监测设备预警系统成为了不可或缺的利器。在这个背景下,HiWoo Cloud平台凭借其先进的技术和卓越的性能,为水质监…

Centos中将UTC的时区改为CTS时区

date命令可以看到现在的时间以及时区,可以看到现在是UTC时区 而想要更改时区那么就要了解tzselect命令 tzselect 是一个 Linux 命令行工具,用于交互式地帮助用户选择并设置系统的时区。这个程序会通过一系列的问题引导用户,从而确定用户所在的…

小程序如何注销

随着移动互联网的深入发展,管控也越来越严格。现在小程序都要求进行ICP备案,不管是新注册的还是以往注册的。很多商家的小程序本身处于无运营状态,现在要求备案,还不如直接注销。下面,将详细介绍小程序注销的步骤和注意…

WPF容器控件之WrapPanel、布局控件

WrapPanel: 换行panel 子元素进行换行&#xff0c;当子元素的宽度或者高度超出了父元素&#xff0c;才进行换行。高度超出父元素的高度 也会另起一列 属性 Orientation布局方式 实例 <WrapPanel Orientation"Horizontal"><Label>C# 是从 C/C 衍生出来的…

Proxmox VE 8 用SDN隔离用户网络

作者&#xff1a;田逸&#xff08;formyz&#xff09; 最新发布的Proxmox VE&#xff08;以下简称PVE&#xff09; 8在Web管理后台集成了易于操作的SDN&#xff08;软件定义网络&#xff09;功能插件&#xff0c;其实质是对不同的PVE用户指定不同的网络&#xff0c;进行逻辑隔离…

低组装直线导轨有哪些应用场景?

低组装直线导轨&#xff0c;是一种用于工业自动化设备中的导轨类型。所谓低组装导轨&#xff0c;是指该导轨的轨道平面高度相对于其他传统导轨较低&#xff0c;其特点是安装方便、维护简单&#xff0c;同时具有较高的稳定性和定位精度。接下来&#xff0c;我们一起来了解低组装…

如何优雅的实现接口限流?

首先限流&#xff0c;其实解决方案有很多&#xff0c;比如通过nginx配置&#xff0c;通过gateway网关进行限流&#xff0c;比如Spring Cloud GateWay整合熔断器实现限流 但是以上都是全局的&#xff0c;如何灵活的针对某些接口进行不同级别的限流呢&#xff1f; 方案一&#…

西汉两个韩信,结局怎么如此相似

西汉军事家、“汉初三杰”韩信是家喻户晓的人物&#xff0c;同时期还有一个韩信&#xff0c;也是战功赫赫&#xff0c;也被封王&#xff0c;史书为了区别&#xff0c;在后一个韩信名字之间加上一个“王”&#xff0c;称为韩王信。韩信是个光芒万丈的人物&#xff0c;韩王信也是…

游戏专用设备指纹方案解析

如同人类拥有独一无二的指纹&#xff0c;设备也有设备的指纹&#xff0c;我们可以把设备指纹理解为设备的唯一识别码。 构建设备指纹需要采集设备硬件信息、软件信息、环境信息、网络信息等维度信息&#xff0c;进行加密/压缩&#xff0c;再通过算法处理&#xff0c;赋予设备唯…

YOLOv9中模块总结补充|SPPELAN

专栏相关代码&#xff1a;目前售价售价69.9&#xff0c;改进点80 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 1. SPPELAN SPPELAN是YOLOv9作者在SPPF的基础上创新的模块&#xff08;增加了一次…

2024付费进群系统,源码及搭建变现视频课程(教程+源码)

前三节讲解搭建支付对接&#xff0c;后两节讲解一些引流变现的方法&#xff0c;还有一种变现就是帮人搭建这样的平台&#xff0c;因为全网都没有一套完整的视频教怎么搭建的&#xff0c;有也只是文字教程&#xff0c;一般新人根本看不懂&#xff0c;我视频实操演示&#xff0c;…

从“制造”到“智造”:“灯塔”经验助力中国制造业转型升级-转载

作者&#xff1a;Karel Eloot&#xff0c;侯文皓&#xff0c;Francisco Betti&#xff0c;Enno de Boer和Yves Giraud 作为中国实体经济的主体&#xff0c;制造业是推动中国经济发展乃至全球制造业持续增长的重要引擎。站在历史与未来交汇的新起点上&#xff0c;中国制造业将背…

马蹄集oj赛(双周赛第二十六次)

目录 斐波那契数列的组合 三国杀 数列分段 小码哥的跳棋游戏新编 能量供应 小码哥爱数字 最小串 小船过河 摘果子 泼墨淋漓 很重的枪 小码哥的布阵指挥 斐波那契数列的组合 #include<bits/stdc.h> using namespace std;// 斐波那契数列 1 1 2 3 5 8 13 21 34…

初始C++(二)

前言&#xff1a; C相对于C语言还有很多区别&#xff0c;接下来我们继续介绍 函数重载&#xff1a; 很好理解&#xff0c;就是Java中的函数重载。C加了函数的修饰&#xff0c;通过函数修饰规则去找。C语言是直接通过函数名查找&#xff0c;C是通过修饰后的函数名去查找。 引用…

蓝桥青少一月 STEMA-Python 测评第一题

第一题&#xff08;难度系数 2&#xff0c;18 个计分点&#xff09; (注.input()输入函数的括号中不允许添加任何信息) 编程实现&#xff1a; 给定一个正整数 N&#xff0c;输出 N 除以 3 的商。 输入描述&#xff1a;输入一个正整数 N 输出描述&#xff1a;输出 N 除以 3 的商…

Faststone Capture:高效屏幕捕获神器评测【AI写作】

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

Cesium 展示——让加载的实体置于顶层,不被其他加载的元素所遮挡,包括地形,一键置顶

文章目录 需求分析需求 本案例中展示了加载了3DTiles后又在其表面添加了一个实体,实体被遮挡,随着视角变换,实体被展示出来,如下图所示 分析 disableDepthTestDistance:指定从相机到禁用深度测试的距离,由于深度测试的存在,我们的对象很多时候会被地形挡住,我们设置dis…

AI电视起风,三星电视打破“隔代飞跃”,在AI纪元再次领跑

作者 | 曾响铃 文 | 响铃说 要说什么是当下最热的话题&#xff0c;刚落下帷幕的北京车展一定是其中之一&#xff0c;除了各类让人眼花缭乱的新车&#xff0c;纷至沓来的各界行业大佬&#xff0c;也让车展话题度被不断拉高。在此之外&#xff0c;此次车展还刮起了一股“旋风”…

Orange3数据可视化(小提琴图)

小提琴图 小提琴图和箱线图类似&#xff0c;用来显示数据分布和概率密度。结合了箱线图和密度图的特征&#xff0c;用来显示数据的分布形状。 输入 数据: 输入数据集 输出 选中的数据: 从图中选中的实例 数据: 增加了一列&#xff0c;显示数据点是否被选中 …