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):在第二范式的基础上,清除表中的传递依赖关系,即属性不依赖于其它非主属性。

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

反范式设计

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

相关推荐
我不会起名字3223 小时前
MySQL 深分页 LIMIT 1000000 卡死:3 种改写与 4 组实测对比
mysql·性能优化·索引·分页·limit
编程火箭车5 小时前
MySQL 拥抱 AI:向量、RAG、AutoML 全进了数据库
数据库·mysql·ai编程·向量数据库·rag·automl·mysql9
o_oer5 小时前
mysql type
mysql
花卷持续成长5 小时前
慢SQL的整体优化思路
后端·mysql
鱼很腾apoc6 小时前
【MySQL】第3期 索引、事务与视图系统详解
linux·mysql·事务·索引·dml·视图·macc
misty youth7 小时前
Navicat与PHPstudy小皮
mysql·adb·php·navicat
毕业设计7038 小时前
(免费领源码)SSM董家湾线上点餐系统04682- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
java·redis·mysql·tomcat·maven·mybatis·ssm
leaf9z8 小时前
阿里云rds查看所有库大小
mysql·阿里云
Yyyyyy~8 小时前
【Mysql】表的操作
数据库·mysql
Q26433650238 小时前
【有源码】基于SpringBoot+Vue的居民健康体检与慢病干预管理系统-面向智慧医疗的体检预约与健康知识服务平台
java·vue.js·spring boot·mysql·毕业设计·javaweb·课程设计