MySQL数据库规范

关系型数据库 Relational DB MySQL 规范 字段命名 字段类型 字段顺序 强制设定为 UNIQUE 索引 关系型数据库(Relational Database)是一种基于关系模型的数据库,它使用表格来组织和存储数据,表格之间通过主键和外键建立关联。这种数据库以行和列的形式存储数据,以便于用户理解,其中一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。MySQL是一种开源的关系型数据库管理系统,它采用了客户端-服务器架构,通过SQL语言来管理和操作数据。 阅读详情

前言

来聊一聊MySQL数据库常见的一些建议设计规范,简单挑出几处进行简单分析和回顾复习,如果有不正确或者不足的地方,还请指正。

规范

  1. 表名、字段名命名必须使用小写字母或数字,并且使用下划线进行分隔,禁止以数字开头。 MySQL在Windows系统下不区分大小写,但是在Linux系统下默认是区分大小写。

  2. 表名、字段名命名禁止使用MySQL的关键字。 该条规范和各类语言禁止定义关键字作为变量名称一样,MySQL中的关键字有很多,例如:desc、and、asc等。

  3. 小数类型使用decimal,禁止使用float和double float和double会存在精度丢失的问题,这个我在前面的文章中已经详细解释过了,具体的可以看之前的文章,如果存储超过decimal范围,可以采取将整数和小数分开存储的方案,这个之前文章也讲过。

  4. join查询时禁止超过三张表,并且join的字段数据类型需要保持一致,关联查询时关联的字段需要添加索引。 如果关联的字段数据类型不一致,可能会导致索引失效。

  5. 推荐使用count(*)统计行数,不推荐使用count(列名)或者count(常量) count(列名)会过滤掉列为NULL的行。

  6. 判断列是不是NULL,使用ISNULL()进行判断 NULL和任何值进行直接比较,结果都是NULL。

  7. 禁止使用外键和级联,外键的解决放在应用层进行解决。 外键和级联适合低并发,对于高并发、分布式集群不适合,级联更新是强阻塞,存在数据库更新风暴的风险,外键影响数据库的插入速度。

  8. 在使用Mybatis、Hibernate或者做其他ORM映射时,禁止使用HashMap进行接收结果集 HashMap作为接收结果集一般不会有什么问题,但是里面的key和value无法把控,包括类型无法把控。

  9. 更新字段时,不更新的字段尽量不要更新,不要使用一个更新接口,不管是不是需要更新,直接每次更新所有字段。 更新所有字段效率比较低,并且数据库binlog日志存储会变大,排查问题是也会变得比较麻烦。

  10. 对于上方所说的查询时关联查询禁止超过三张表,我们可以采用字段冗余,提高查询性能。 字段冗余可以提高查询性能,但是必须需要保持冗余的字段数据是一致的,尽量不要是频繁修改的字段,不是唯一索引的字段,不是varchar超长字段或者text字段。

总结

我们今天简单选了10个规范进行简单的分析和回顾,对于部分规范,例如为何使用decimal,推荐使用的数据库编码等具体的原因分析,希望对你有所帮助。

MYSQL 数据库开发规范 如果数据库系统设计不合理,不仅会增加客户端和服务器端程序的编程和维护的难度,而且还会影响系统实际运行的性能。中,存在过期概念的表,在其设计之初就必须有过期机制,且有明确的过期时间。表中除主键以外还存在唯一约束的,必须在数据库中创建唯一约束,一般通过创建唯一索引实现。中,仅可以使用下文提及的数据类型,所有表、字段必须添加能够清楚表示其含义的。依据业务逻辑的需要,在表结构设计之初建立唯一索引,避免后期的重复数据清除。严格要求使用正确类型的变量,确定表中每个字段的数据类型,杜绝隐式类型转换。 阅读详情

相关推荐

uniapp+华为HBuilder X 4.29跑鸿蒙模拟器报错没有签名授权

uniapp+华为HBuilder X 4.29跑鸿蒙模拟器报错没有签名授权报错信息11:39:47.976 安装 .hap 到鸿蒙设备 ...11:39:48.517 运行所需的权限没有签名授权,请参考 配置文档11:39:48.517 安装失败。

weixin_66071584的博客 1352

值得收藏:一份非常完整、详细的MySQL规范

由于篇幅限制,小编在此截出几张知识讲解的图解《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!由于篇幅限制,小编在此截出几张知识讲解的图解[外链图片转存中…(img-rsJcD16P-1711886758987)][外链图片转存中…(img-DlGIyOsQ-1711886758988)][外链图片转存中…(img-iiLrjrqX-1711886758988)][外链图片转存中…(img-49k8l0HW-1711886758988)]

2301_79055239的博客 781

iTunes登录协议全解析:从抓包到加密参数生成(含HTTPDebugger避坑指南)

本文深度解析iTunes登录协议,提供从环境搭建、绕过反调试机制到捕获网络流量的完整实战指南。重点剖析了如何利用HTTPDebugger等工具进行抓包,并详细解读了核心加密参数X-Apple-ActionSignature的生成逻辑,为网络安全研究员和协议分析工程师提供了一份详尽的逆向分析与协议复现教程。

weixin_28314575的博客 869

完整的 MySQL 规范,值得收藏

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

weixin_40381772的博客 3847

UE4免费资产库新玩法:Quixel Bridge插件安装与Megascans资源导入全攻略

本文详细介绍了如何在UE4中安装Quixel Bridge插件并导入Megascans资源,帮助开发者快速获取高质量3D资产。通过分步教程和实用技巧,提升游戏或影视场景的制作效率,特别适合需要真实感环境的项目。

weixin_27729671的博客 369

5分钟搞定PettingZoo多智能体环境搭建:从安装到运行第一个Demo

本文详细介绍了如何在5分钟内完成PettingZoo多智能体环境的搭建,从安装到运行第一个Demo。通过精准的版本控制和常见问题解决方案,帮助开发者快速上手多智能体强化学习(MARL)环境配置,并提供了实战案例和性能优化技巧。

backprop5master的博客 223

MySQL数据库设计规范

目录1. 规范背景与目的 2. 设计规范 2.1 数据库设计 2.1.1 库名 2.1.2 表结构 2.1.3 列数据类型优化 2.1.4 索引设计 2.1.5 分库分...

代码技巧 603

”COMSOL“竟然如此简单!我悟了!!

COMSOL Multiphysics具有强大的多物理场全耦合仿真分析功能、高效的计算性能,可以保证数值仿真的高度精确,已被广泛应用于各个学科领域,近年来运用COMSOL来解决电化学实际工程问题也越来越普遍。

C1012562281的博客 3449

MySQL数据库规范(完整版)

一、数据库命令规范 1)所有数据库对象名称必须使用小写字母并用下划线分割 2)所有数据库对象名称禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 3 )数据库对象的命名要能做到见名识...

cuiruidu3106的博客 2098

LVDS系列23:Xilinx Ultrascale系ISERDESE3原语(一)

当FIFO_RD_CLK与CLKDIV对齐时,也就是Latency With Late FIFO Empty情况时,延迟比前一种情况长一个FIFO_RD_CLK时钟周期,也就是在FIFO_RD_CLK上升沿后一点,CLKDIV才成功驱动完FIFO_EMPTY的变化,于是读侧要得到FIFO_EMPTY为0的情况则要等到下一个FIFO_RD_CLK的上升沿采集时;IS_CLK_INVERTED、IS_CLK_B_INVERTED设置CLK和CLK_B是否反转,一般情况下设置0;

weixin_38828382的博客 900

SHP转TXT、TXT转SHP工具(附工具下载链接)

关于TXT,可以选择整个图层生成一个TXT。也可以勾选“每个地块单独存TXT”,然后选择一个字段,根据字段值,给每个地块生成一个TXT文件。支持选择和数据框一样的坐标系,也可以选择一个图层,工具会采用和这个图层一样的坐标系。1、TXT数据支持输入单个或者多个TXT文件,也可以直接选择TXT所在的文件夹。所有的TXT数据都生成到一个矢量数据图层。关于这一行的内容,可以在地块坐标行设置中进行设置。其他:①面节点闭合:勾选,则回到起点。属性描述:可以直接复制粘贴进来,也可以直接修改。也可以改为任意字母。

坐听风雨 4308

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

在我们对数据库技术方案设计的时候,我们是否有自己的设计理念或者原则,还是更多的依据自己的直觉去设计,是否曾经懊悔线上发生过的一次低级故障,可能稍微注意点就可以避免,是否想过怎么才能很好的避免,规范的价值正是我们工作的检查清单,需要我们不断从错误中积累有效经验来指导未来的工作。本文介绍MySQL数据库开发设计规范之基础规范。PS:以下规范在大型互联网公司经过了充分的验证,尤其适用于并发量大、数据量大的业务场景。以上介绍了在进行MySQL数据库开发设计时,可以遵循的一些基础的技术规范。

分享是一种境界,勤于分享,乐于分享! 1082

单细胞测序中pseudo bulk差异分析的实战指南与审稿人应对策略

本文提供了单细胞测序中pseudo bulk差异分析的完整实战指南,旨在应对审稿人对样本量统计效力的质疑。文章详细解析了从数据聚合、使用DESeq2进行差异分析,到与单细胞水平结果进行交叉验证的全流程,并给出了应对常见问题与撰写回复的策略,帮助研究者提升结论的稳健性与说服力。

weixin_29214199的博客 832

大厂MySQL数据库规范文档

本文介绍了MySQL数据库开发规范,主要包括建表、索引、SQL编写、变更管理等方面的要求。重点规范了表名命名规则(小写、前缀+定义+后缀)、字段注释、索引命名、字符集设置等;强调必须使用唯一索引、自增主键和InnoDB引擎;SQL编写需避免性能问题;变更需通过Git管理;运维需最小权限原则;分库分表方案推荐按时间或ID哈希等。文档提供了详细示例和完整规范下载链接,适用于企业级MySQL数据库开发场景。

launch2020的博客 990

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

MySQL数据库开发规范

MySQL数据库开发规范 一.基础规范 使用InnoDB 存储引擎 没有特殊要求(即Innodb无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用Innodb存储引擎(mysql5.5之前默认使用Myisam,5.6以后默认的为Innodb)Innodb 支持事务,支持行级锁,更好的恢复性,高并发下性能更好 表字符集使用utf8mb4 默认使用 utf8mb4 字符集,数据...

小天一直在路上 3847

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

MySQL数据库开发设计规范总结

从数据库的设计原则、命名规范等方面论述数据库设计的规范思想及命名规则。方便业务功能实现、业务功能扩展方便设计开发、增强系统的稳定性和可维护性保证数据完整性和准确性提高数据存储效率,在满足业务需求的前提下,使时间开销和空间开销达到优化平衡。

qq_55342245的博客 1795

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

MySQL学习总结(一)DB、DMBS、SQL的含义/MySQL语法规范

f12格式化 字符和字符串都是单引号 别名有特殊符号加双引号

ZaynFox的博客 2464

【MySQL】数据库开发规范

背景 之前也做了好多次数据库开发规范培训,也是时候整理一下自己写的开发规范。 开发规范 1.数据库命名规范 数据库对象(库名、表名、列名等)必须使用小写字母,必要时候使用下划线分割 数据库对象禁止使用mysql 关键字和保留关键字 数据库对象中存储相关数据的列名和列类型必须一致,例如 玩家 id相关列 在各个表中列名和类型 bigint 均须一致 数据库对象名称须见名知意,且长度限制在12个字符内 数据库字段名表名尽量对重要字段带comment标识 索引名带上标识,唯一索引uk_,普通索引idx_ 2

授人以鱼不如授之以渔 2934

Mysql数据库规范

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄🌹简历模板、学习资料、面试题库、技术互助🌹文末获取联系方式 📝。

Java 技术专栏,从入门到精通,熟悉企业级开发 1178

MySQL 数据库命名规范

MySQL 数据库命名规范 基础规范 表存储引擎: InnoDB 表 字符集默认使用 utf8,必要时候使用 utf8mb4 库名 表名 字段名 命名规范 库名与应用名称尽量一致。 表名、字段名必须使用小写字母或数字, 禁止出现数字开头,禁止两个下划线中间只出现数字。 说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。 MySQL定义 库名,表名,列名必须见名知义,长度不要超过 32 字符 说明:tmp,wushan 谁知道这些库是干嘛的 禁用保留字,如 d

yunnuo的博客 2671

mysql 数据库表结构设计与规范

mysql 数据库表结构设计与规范DDL(data difinition language)就是数据定义语言。1.sql语句的界定符[code]– 默认情况下” ; ” 代表sql语句的结束 delimiter 新的界定符 – 修改 // 为界定符 delimiter //2.创建数据库[code]#1.创建数据库 create database 数据库名字 [charset = uft

qq632544991p的专栏 5929

MySQL数据库设计规范及SQL规范

说明:索引长度与区分度是一对矛盾体,一般对于字符串类型数据,长度为20的索引,区分度会高达90%以上,可以使用count(distinct left(列名,索引长度))/count(*)的区分度来确定。说明:合理创建联合索引(避免冗余), index(a,b,c) 相当于 index(a) 、 index(a,b) 、 index(a,b,c)。说明:5.5 以后的默认引擘,支持事务,行级锁,更好的恢复性,高并发下性能更好,对多核,大内存, SSD等硬件支持更好。索引a_b无法排序。.........

日常记录 826

【MySQL数据库开发设计规范】之安全规范

在我们对数据库技术方案设计的时候,我们是否有自己的设计理念或者原则,还是更多的依据自己的直觉去设计,是否曾经懊悔线上发生过的一次低级故障,可能稍微注意点就可以避免,是否想过怎么才能很好的避免,规范的价值正是我们工作的检查清单,需要我们不断从错误中积累有效经验来指导未来的工作。本文介绍MySQL数据库设计规范之安全规范,以下规范在大型互联网公司经过了充分的验证,尤其适用于并发量大、数据量大的业务场景。以上介绍了在进行MySQL数据库开发设计时,可以遵循的一些安全技术规范。

分享是一种境界,勤于分享,乐于分享! 1401
上一篇: 强大功能的免费内存分析器,Java性能调优MAT内存分析工具
下一篇: 使用这45个小技巧,帮助你写出更优雅的代码
Java_LingFeng
博客等级 码龄4年 505粉丝 259原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值