1.MySQL逻辑架构
MySQL逻辑架构图
MySQL逻辑架构分四层
1.连接层:主要完成一些类似连接处理,授权认证及相关的安全方案。
2.服务层:在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断,SQL接口,SQL解析,SQL分析优化, 缓存查询的处理以及部分内置函数执行(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等。
3.引擎层:是底层数据存取操作实现部分,由多种存储引擎共同组成。真正负责MySQL中数据的存储和提取。就像Linux众多的文件系统 一样。每个存储引擎都有自己的优点和缺陷。服务器是通过存储引擎API来与它们交互的。这个接口隐藏 了各个存储引擎不同的地方。对于查询层尽可能的透明。这个API包含了很多底层的操作。如开始一个事物,或者取出有特定主键的行。存储引擎不能解析SQL,互相之间也不能通信。仅仅是简单的响应服务器 的请求。
4.存储层:将数据存储于裸设备的文件系统之上,完成与存储引擎的交互。
MySQL语句执行流程图
2.MySQL存储引擎
查看MySQL中现在提供的存储引擎:
show engines;
查看MySQL现在默认使用的存储引擎:
show variables like '%storage_engine%';
查看某表使用的存储引擎:
show create table 表名;
从上面MySQL逻辑架构图可以看到,MySQL有很多种存储引擎,他们以插件的形式存在,需要那个存储引擎则装上那个存储引擎。
其实在MySQL中主要使用MyISAM引擎和InnoDB引擎。
MyISAM引擎和InnoDB引擎简单对比:
MyISAM引擎 | InnoDB引擎 | |
---|---|---|
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表所.不适合高并发 | 行锁.适合高并发 |
缓存 | 只缓存索引 | 缓存索引和真实数据 |
表空间 | 小 | 大 |
关注点 | 性能.偏读 | 事务 |
默认安装 | 是 | 是 |