MySQL中的存储引擎
MySQL的体系结构
接下来先了解一下MySQL中的体系结构
MySQL中的体系结构实际是分层的
·连接层
接收客户端的连接、对连接的处理、以及认证授权的相关操作和其相关的一些安全方案、检查是否超过最大连接数......
·服务层
SQL接口、解析器、查询优化器、缓存都是在服务层完成的,而所有跨存储引擎的实现也都是在服务层实现的
·引擎层
控制MySQL中数据的存储和提取的方式,服务器会通过ACID和存储引擎来进行交互。Index索引也是在引擎层实现的,所以不同的引擎,索引的结构也是不一样的,InnoDB引擎是MySQL5.0版本以后的默认存储引擎
·存储层
存储数据库的相关数据,包含一些列的日志......
存储引擎简介
代码演示-->
在默认情况下建表的存储引擎-->
-- 查询建表语句 -- 默认存储引擎:InnoDB show create table emp;
结果-->
查询当前数据库支持的存储引擎-->
-- 查询当前数据库支持的存储引擎 show engines ;
结果-->
在创建表时,指定存储引擎-->
1--->
-- 创建表my_myisam,并指定MyISAM存储引擎 create table my_myisam( id int, name varchar(10) )engine = MyISAM; show create table my_myisam;
2--->
-- 创建表my_memory,指定Memory存储引擎 create table my_memory( id int, name varchar(10) )engine = Memory; show create table my_memory;
结果-->
1--->
2--->
存储引擎特点
InnoDB-->
InnoDB特点->
参数innodb_file_per_table:
打开:每张表对应一个表空间文件(MySQL8.0默认打开)
关闭:多张表共用一个共享表空间文件
可以通过:show variables like 'innodb_file_per_table';查看
InnoDB逻辑结构->
区空间固定1M,页空间固定16K
MyISAM-->
Memory-->
区别
接下来介绍这三个存储引擎的区别