如何更规范化使用MySQL

背景:一个平台或系统随着时间的推移和用户量的增多,数据库操作往往会变慢;而在Java应用开发中数据库更是尤为重要,绝大多数情况下数据库的性能决定了程序的性能,如若前期埋下的坑越多到后期数据库就会成为整个系统的瓶颈;因此,更规范化的使用MySQL在开发中是不可或缺的。

一、MySQL数据库命名规范

1、数据库所有表前缀均使用项目名称首字母缩写;

2、数据库所有对象名称均使用小写字母,并且单词之间通过下划线分开;

3、数据库所有对象名称禁止使用MySQL保留字及关键字,涉及到关键字的SQL查询需要将关键字用单引号括起来;

4、数据库所有对象名称不超过32个字符,并且命名要遵循见名知意原则;

5、数据库临时表必须以 pro_tmp_ 为前缀并且以日期 _20190917 为后缀,备份表必须以 pro_bac_ 为前缀并以时间戳为后缀;(pro为项目名称首字母缩写)

6、数据库所有存储相同数据的列名和列类型必须保持一致。

二、MySQL数据库基本设计规范

1、若无特殊说明,建表时一律采用Innodb存储引擎。

      选择合适的引擎可以提高数据库性能,如InnoDB和MyISAM,InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定;基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持;MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能;因此,其支持事务处理、支持外键、支持崩溃修复能力和并发控制是我们建表时首选的存储引擎。

2、数据库和表的字符集统一使用UTF8

      数据库和表的字符集统一使用utf8,若是有字段需要存储emoji表情之类的,则将表或字段设置成utf8mb4;因为,utf8号称万国码,其无需转码、无乱码风险且节省空间,而utf8mb4又向下兼容utf8。

3、设计数据库时所有表和字段必须添加注释

      使用Comment从句添加表和列的备注,或直接在数据库连接工具的注释栏添加注释,从项目开始就进行数据字典的维护。

使用Comment从句添加注释如:

1、创建表:   CREATE TABLE t1(id varchar2(32) primary key,name VARCHAR2(8) NOT NULL,age number);   2、添加表注释:   Comment on table t1 is '个人信息';   3、添加字段注释:   comment on column t1.id is 'id';   comment on column t1.nameis '姓名';   comment on column t1.age is '年龄';

使用数据库连接工具添加注释:

图1. 数据库连接工具添加注释

如何更规范化使用MySQL

 

4、单个表的数据量大小控制在500万以内

      尽量控制单表数据量的大小,建议控制在500万以内;500万并不是MySQL数据库的极限,但数据量太多不利于对表结构进行修改、备份和恢复数据,适当采用分库分表等手段来控制单表数据量的大小。

5、使用MySQL分区表需谨慎

      分区是将一个表的数据按照某种方式,比如按照时间上的月份,分成多个较小的,更容易管理的部分,但是逻辑上仍是一个表;分区表在物理上表现为多个文件,在逻辑上仍表现为同一个表,需要谨慎选择分区键;跨分区查询效率可能会更低,建议使用物理分区表等方式管理大数据。

6、尽量满足冷热数据分离,减小表等宽度

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8fa9221a16c70ba4f0fde1a2a40183a5.html