当前位置:网站首页>MySQL存储引擎

MySQL存储引擎

2022-07-06 00:16:00 不断完善的楠

1.什么是数据库存储引擎?

数据库引擎:是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。

2.默认的存储引擎是InnoDB

1.利用 show create table 表名 sql语句来查看默认的存储引擎是啥
在这里插入图片描述

3.查看数据库的存储引擎

sql语句:show engines;
在这里插入图片描述

4.创建表并制定表的存储引擎

1.创建数据表并且制定表存储引擎为MyISAM;

在这里插入图片描述
2.创建数据表并且制定表存储引擎为Memory;
在这里插入图片描述

5.InnoDB存储引擎

1.InnoDB是什么?

InnoDB是一种兼顾 高可靠性和 高性能的通用存储引擎。

2.InnoDB的特点是什么?

1.DML(数据操作语言:增删改查)操作遵循ACID(事务四大特性:原子性、一致性、隔离性、持久性)模型,支持事务;
2.行级锁,提高并发访问性能;
3.支持外键foreign key约束,保证数据的完整性和正确性。
4.支持奔溃修复和自增列。

3.InnoDB优缺点的分析:

InnoDB的优势是支持事务、支持外键、支持奔溃修复和自增列。通过InnoDB来控制事务的提交和回滚,从而保证业务的完整性。
InnoDB的缺点是读写效率低,占用数据空间较大。

6.数据库表级锁和行级锁

1.MySQL数据库的锁机制:不同的存储引擎支持不同的锁机制。

MyISAM和MEMORY存储引擎采用的是表级锁。
InnoDB存储引擎即支持行级锁,也支持表级锁,默认采用的是行级锁。

2.MySQL主要的两种锁的特性:

表级锁:每次操作锁整张表,开销小,加锁快,不会出现死锁,发生锁冲突的概率高,并发度低;
行级锁:每次操作锁一行数据,开销大,加锁慢,会出现死锁,发生锁冲突概率低,并发度高。

7.MyISAM

1.MyISAM是早期MySQL早期默认存储引擎。

特点:1.不支持事务,不支持外键;
2.支持表锁,不支持行锁;
3.访问速度快
特点:
xxx.sdi:存储表结构信息;
xxx.MYD:存储数据;
xxx.MYI:存储索引。

2.MyISAM优缺点分析:

MyISAM引擎保存了单独的索引文件.myi,且它的索引是直接定位到OFFSET的,而InnoDB没有单独的物理索引存储文件,InnoDB索引寻址是先定位到块数据,再定位到行数据,所以,MyISAM的查询效率是比InnoDB的查询效率高,但是它不支持事务,不支持外键,适用场景是读多写少,且对完整性要求不高的业务场景。

8.Memory

1.Memory的定义

Memory:内存型数据库引擎,所以的数据都存在内存中,读写效率很高,但是MySQL服务重启后,数据会丢失,它不支持事务、外键,memory支持hash索引或者B树索引,hash索引是基于key查询的,查询效率较高,如果是基于范围查询的效率就比较低。InnoDB和MyISAM是基于B+树的数据结构实现的。

2.Memory优缺点分析

Memory读写能力高,但是MySQL重启之后,数据会丢失,不支持外键和事务。
适用场景:读写效率要求高,且对数据丢失不敏感的业务场景。

原网站

版权声明
本文为[不断完善的楠]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_51062428/article/details/125602768