Mysql数据库 17.Mysql存储引擎

Mysql体系结构分为4层:

1.连接层

最上层是一些客户端和连接服务,包括大多数基于客户端/服务端工具实现的类似于TCP/IP的通信,主要功能是完成一些类似于连接处理、授权认证、安全方案等,在该层上还引入线程池的概念,为通过认证接入的客户端提供线程。

2.服务层

这一层主要完成了大多数的核心服务功能,如SQL接口,SQL解析器,查询优化器、缓存、内置函数执行、所有跨存储引擎的功能也在这一层实现,比如DML、DDL语句封装、存储过程、视图等,都是在这一层完成。

3.引擎层

存储引擎层,存储引擎是真正负责MySQL中数据的储存和提取,服务器通过API和存储引擎进行通信。不同的引擎有着不同的功能,我们可以根据自己的需求,来选择合适的存储引擎,并且数据库中的索引实在存储引擎层实现的。

4.存储层

数据存储层,主要是将数据(日志、索引、二进制日志、错误日志、查询日志、慢查询日志等)存储在文件系统之上(存储到磁盘中),并可以完成与引擎的交互,MySQL他的架构可以在多种不同场景下使用,并发挥良好作用主要体现在储存引擎上,他是可插拔的储存引擎。

Mysql数据库 17.Mysql存储引擎_第1张图片

存储引擎

Mysql数据库 17.Mysql存储引擎_第2张图片

默认使用InnoDB,引擎是基于表的,存储引擎也可以被称之为表类型。

默认引擎查看

show create table 表名;

#默认引擎查看
use db_test3;

show create table order_db ;

Mysql数据库 17.Mysql存储引擎_第3张图片

Mysql数据库 17.Mysql存储引擎_第4张图片

查看所有存储引擎

#查看所有存储引擎
show engines;

Mysql数据库 17.Mysql存储引擎_第5张图片

存储引擎介绍

Mysql数据库 17.Mysql存储引擎_第6张图片

常见的引擎如下

1.innoDB 默认

2.MyISAM MySQL 早期版本默认引擎

3.memory 数据存储在内存中,通常作用于缓存或者临时表

引擎的操作

创建指定引擎的数据表

指定引擎MyISAM创建数据表

#创建指定引擎的数据表
create table mytable(
	id int,
	name varchar(10)
)engine = MyISAM;

Mysql数据库 17.Mysql存储引擎_第7张图片

#查看见表默认引擎
show create table mytable ;

Mysql数据库 17.Mysql存储引擎_第8张图片

InnoDB

特点

Mysql数据库 17.Mysql存储引擎_第9张图片

查询某引擎是否被开启

#查询某引擎是否被开启
show variables like 'innodb_file_per_table';

ON表示正在开启

Mysql数据库 17.Mysql存储引擎_第10张图片

逻辑存储区域

Mysql数据库 17.Mysql存储引擎_第11张图片

innoDB会开启一个表空间

innoDB使用场景

Mysql数据库 17.Mysql存储引擎_第12张图片

引擎:不同场景下使用不同的引擎

MyISAM

MyISAM是早期的默认引擎

特点

Mysql数据库 17.Mysql存储引擎_第13张图片

MyISAM使用场景

Mysql数据库 17.Mysql存储引擎_第14张图片

注意:常见面试题

***!!InnoDB引擎与MyISAM引擎的区别?

iinoDB支持事务,MyISAM不支持事务

innoDB支持行锁和表现,而MyISAM仅支持 表锁,不支持行锁

innoDB支持外键,MyISAM不支持外键

 Mysql数据库 17.Mysql存储引擎_第15张图片

Memory

基于缓存的引擎

Memory引擎的表数据存储在内存中,所以导致会受到硬件问题,断电问题影响(一旦服务器关闭,数据就会消失),只能将Memory引擎的表作为临时表或者缓存来使用

特点

Mysql数据库 17.Mysql存储引擎_第16张图片

创建指定引擎的数据表

指定引擎Memory创建数据表

#创建指定引擎的数据表 
create table myMemory (
	id int,
	name varchar(10)
)engine=Memory;

Mysql数据库 17.Mysql存储引擎_第17张图片

创建出的是xxx.sdi:储存表结构信息

使用场景总结

因为是基于缓存的引擎,所以可替代性强

你可能感兴趣的:(Mysql数据库,数据库,mysql)