最上层是一些客户端和连接服务,包括大多数基于客户端/服务端工具实现的类似于TCP/IP的通信,主要功能是完成一些类似于连接处理、授权认证、安全方案等,在该层上还引入线程池的概念,为通过认证接入的客户端提供线程。
这一层主要完成了大多数的核心服务功能,如SQL接口,SQL解析器,查询优化器、缓存、内置函数执行、所有跨存储引擎的功能也在这一层实现,比如DML、DDL语句封装、存储过程、视图等,都是在这一层完成。
存储引擎层,存储引擎是真正负责MySQL中数据的储存和提取,服务器通过API和存储引擎进行通信。不同的引擎有着不同的功能,我们可以根据自己的需求,来选择合适的存储引擎,并且数据库中的索引实在存储引擎层实现的。
数据存储层,主要是将数据(日志、索引、二进制日志、错误日志、查询日志、慢查询日志等)存储在文件系统之上(存储到磁盘中),并可以完成与引擎的交互,MySQL他的架构可以在多种不同场景下使用,并发挥良好作用主要体现在储存引擎上,他是可插拔的储存引擎。


默认使用InnoDB,引擎是基于表的,存储引擎也可以被称之为表类型。
show create table 表名;
- #默认引擎查看
- use db_test3;
-
- show create table order_db ;


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


常见的引擎如下
1.innoDB 默认
2.MyISAM MySQL 早期版本默认引擎
3.memory 数据存储在内存中,通常作用于缓存或者临时表
创建指定引擎的数据表
- #创建指定引擎的数据表
- create table mytable(
- id int,
- name varchar(10)
- )engine = MyISAM;

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


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



引擎:不同场景下使用不同的引擎
MyISAM是早期的默认引擎



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

xxx.sdi:储存表结构信息
因为是基于缓存的引擎,所以可替代性强