Code前端首页关于Code前端联系我们

MYSQL数据库设计规范参考,基于InnoDB+utf8mb4

terry 2年前 (2023-09-26) 阅读数 48 #数据库

基础规范

必须使用InnoDB存储模块

解读:支持事务、行级锁、每CPU和内存更好的并发页性能使资源使用速度更快较高

必须使用utf8mb4

解释:Unicode,无需重新编码,无乱码风险,节省空间

必须在数据表和数据字段中添加中文注释

使用存储过程和视图被禁用、触发器、事件

解读:对于一个高并发数据量的大数据在线商店,架构设计思想是“释放数据库处理器,将计算转移到服务层” ”。当并发量很大时,这些功能很有可能把数据库拖死。将业务逻辑放在服务层,具有更好的扩展性,可以轻松实现“机器性能提升”。数据库擅长存储和存储索引,所以CPU处理能力应该提高!

命名规范

只允许使用内网域名,不能使用IP连接数据库

数据库内网域名的在线环境、开发环境、测试环境遵循命名规范

业务name: xxx

在线环境上传:dj.xxx.db

开发环境:dj.xxx.rdb

测试环境:dj.xxx.tdb

在数据库名称后面添加 -s 标志在备用数据库名称后添加 -。 ss标志

在线从库:dj.xxx-s.db

在线备库:dj.xxx-sss.db

库名、表名、字段名:小写、下划线样式、不超过32 个字符必须可以被理解为名称。禁止拼音和英文混用

表名t_xxx、非唯一索引名idx_xxx、唯一索引名uniq_xxx

表设计规范ⓝ单实例表数量ⓝ单实例表数量必须小于50 一张表的列数必须小于30

表必须有主键如自增主键

主键必须是自增的

写入数据行可以提高插入性能,可以防止页面分裂,减少表碎片空间和内存使用

为主键选择较短的数据类型

常见的Innodb内核索引存储主键值。较短的数据类型可以有效减少索引的磁盘空间,提高索引缓存效率。如果存在外键完整性约束,则需要应用程序检查。高并发情况很容易导致数据库性能问题。在高并发大数据企业场景中,使用数据库应该优先考虑性能。

字段设计规范

字段必须定义为NOT NULL并提供默认值

解释:

  1. 空列使索引/索引统计/值比较更加复杂,对于MySQL来说难以优化
  2. null 此类MySQL内部需要进行特殊处理,增加了数据库处理记录的复杂度;同等条件下,当表中空字段较多时,数据库的处理性能会大大降低
  3. 需要更新空值 如果存储空间过多,每行中的空列表或索引中需要额外的空间来标识
  4. 使用 null 时,只能使用 is null 或 not null,而不能使用 =、v、

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门