MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。归根结底,我们主要还是和MySQL表打交道的,MySQL表结构设计也就显得尤为重要了。
1.选择合适的存储引擎
在表结构设计中,首先我们就要选择一个合适的存储引擎,我们在之前的文章《谈谈MySQL存储引擎》就简述了每个存储引擎的区别,在选择存储引擎时,我们应该根据自己的业务场景来选型存储引擎,如:需要OLTP(在线事务处理)的应用,就应该选择InnoDB存储引擎,如果仅仅用作存储数据,允许数据不一致,数据仓库等场景时,可用MyISAM存储引擎,如果你不知道如何选择,那么使用InnoDB存储引擎就对了。
2.选择合适的字符集 这里之前也说过一次了,主要是为了保存emoji表情,例如: 微信昵称,就有很多带有emoji表情的,这里我们使用utf8mb4字符集,千万不要使用blob类型来存储。
3.选择合适的数据类型
这里指的是数据列的数据类型,在选择合适的数据类型时,我们应满足以下条件:
尽量选择小,简单的数据类型。
保持可读性。
尽量避免Null
我们尽可能选择小的数据类型,这样会有很多好处,比如服务端处理效率,传输等都会快些。这里给出几个常见的数据类型设计:
状态类型用 tinyint,例如 性别等。
时间日期使用datetime,timesamp类型,我比较喜欢使用datetime类型,(可读性高些)。
尽量不要使用text和blob数据类型,特别是blob。
4.添加合适的索引
建议在创建时间上都加上索引,索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。
5.添加注释
添加注释,这是非常重要的,其中包括表注释,字段注释。主要是为了后期表结构的维护,我相信你对着数据表中那么多字段,如果没有注释的话,你是很难一下子明白是什么意思的,即使你是该表结构的设计者,十天半个月过去后,你还记得吗?
6.设计逻辑删除
这个字段主要用作业务上的逻辑删除,在现在数据为金的时代,数据不建议做物理删除。原因有以下几点:
可恢复,物理删除一旦删除,即不可恢复。
逻辑删除数据可用数据分析等。
例如:
deleted tinyint not null default 1;
7.使用外键约束
外键约束用来保证数据完整性的,这一点我很赞同,但是我不建议在数据库表中加外键约束,因为在数据表中添加外键约束,会影响性能,例如: 每一次修改数据时,都要在另外的一张表中执行查询。我的建议是:在应用层,也就是代码层面,来维持外键关系。
以上就是我们对MySQL表结构设计的解析,我们在使用MySQL数据库创建表时,一定要做好表结构的设计工作,设计出结构严谨逻辑顺畅的表,也能够使MySQL对表中数据的处理更加迅速,准确。在本站的MySQL教程中,有对MySQL表的各种介绍,在看完之后,相信我们对MySQL表结构设计会有更深的理解。
MySQL是目前最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL能够有如今的地位,离不开优秀的MySQL整体架构。
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。那么,MySQL数据库都有哪些存储引擎呢?下面
MySQL复制是指从一个mysql服务器(MASTER)将数据通过日志的方式经过网络传送到另一台或多台mysql服务器(SLAVE),然后在slave上重放(replay或redo)传送过来的日志,以达到和master数据同步的目的。MySQL复制属于比较成熟的技术,在MySQL数据库中得到广泛使用,下面我们一起来了解一下MySQL复制的优点。
约束就是对表中的数据进行限定,保证数据的正确性、有效性和完整性。在MySQL数据库中,有比较重要的4种约束,共同维护着MySQL数据库的数据。本文我们就来一探究竟,学习MySQL数据库中4大约束。
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目
Java SE(Java Platform, Standard Edition,Java标准版),基础进阶
Docker 是一个基于 Go 语言 并遵从 Apache2.0 协议开源的应用容器引擎,让开发者可以打包应用到一个可移植的镜像中
Java SE(Java Platform, Standard Edition,Java标准版),零基础入门
jQuery是一个快速、简洁的JavaScript框架
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境,它所提倡的是智能编码,是减少程序员的工作
动力节点在线报名表(此信息已加密,请放心填写)