MySQL数据库引擎介绍

MySQL数据库引擎介绍

不同传输引擎特点不同。传输引擎也成为表类型

通过语句 SHOW ENGINES; 查看数据库支持的引擎:

图表 1 SHOW ENGINES;

数据库引擎类型:

MySQL数据库引擎选择

  1. 如果要提供提交、回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是个很好的选择。

  2. 如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率。

  3. 如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内 存中的MEMORY引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果。

  4. 如果只有INSERT和SELECT操作,可以选择ARCHIVE引擎,ARCHIVE引擎支持高并发的插入操作,适合存储归档数据。

需要知道:1、数据库中有不同引擎,所适用的业务不同2、默认InnoDB(对于大部分系统来说均为InnoDB)

好处:针对某个表设置,不同的表使用不同的传输引擎------满足业务需求。

图表 2每个表都可以设置

范式理论与反范式设计

数据库范式设计

数据库的设计范式是数据库设计所需要满足的规范。

满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除 (delete)和更新(update)等操作异常。

第一范式

第一范式(1NF),指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值 ,即实体中的某个属性不能有多个值或者不能有重复的属性;且存在标识记录唯一值的主键(例如学生信息表中,字段"学号"能够唯一标识/区分学生)。

在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。

主键:区分表中的不同记录,主键的值一旦确定,其他的值就确定下来了。

判断标准:是否存在复合列,是否能再拆分。

第二范式

第二范式(2NF):满足 1NF 且要求实体的属性完全依赖于主关键字,不存在部分依赖关系,即必须找出第一范式的表中对主键不依赖的列,将这些列(部分依赖)划分到另外的表中。

第二范式在第一范式的基础上提出。

当只知道成绩的时候学号不能唯一确定,学生选课表(学号+课程编号);课程表(课程编号,学分)。

第三范式

第三范式(3NF):在第二范式的基础上,清除表中的传递依赖关系,即属性不依赖于其它非主属性。

例如:学生表(学号,姓名,性别,院系编号,院系名称,院系地址)

反范式设计

以空间换时间,特定场景特定需求下的做法。

相关推荐
FYKJ_20104 小时前
springboot雅集社区养老管理系统04456-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
FYKJ_20104 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
javascript·vue.js·spring boot·mysql·typescript·spark·express
FYKJ_20105 小时前
springboot羽毛球场地管理系统00626-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
FYKJ_20105 小时前
django药饮个性化推荐系统54839-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
Flynt11 小时前
"MySQL搜不动就上ES"?我先在50万行数据上测了它自带的ngram全文索引
mysql·elasticsearch·搜索引擎
imDwAaY11 小时前
Redo Log 和 Binlog 为什么需要两阶段提交?
后端·mysql
数据库小学妹11 小时前
MySQL深分页优化:LIMIT大偏移的根因分析与五种解法对比
数据库·mysql·性能优化
这个DBA有点耶11 小时前
从异步复制到MGR:MySQL复制机制的三层演进与选型框架
数据库·mysql·代码规范
小白男神11 小时前
MySQL进阶学习六(InnoDB存储引擎)
后端·mysql