mysql逻辑架构

mysql逻辑架构

逻辑架构图

连接器(Connectors)、系统管理与控制工具(Management Services & )、连接池(Connection Pool)、sql接口(SQL interface )、解析器(Parser)、查询优化器(Optimizer)、查询缓存(Cache和Buffer)、存储引擎(Pluggable Storage Engine)

连接器

系统管理与控制工具

连接池

sql接口

接受SQL DDL DML

解析器

形成语法树

查询优化器

对表查询的过程优化,比如说大表小表,则先执行小表查询再去查询大表数据

查询缓存

将查询到的结果存储起来,下次就不用再到磁盘上读取,直接在缓存里读取

存储引擎

mysql的存储引擎都是以表为单位的

create table user() engine =InnoDB/Memory/MyISAM  

mysql的几种存储引擎的对比

存储引擎 说明 使用场景
MyISAM 高速引擎,拥有较高的插入、查询速度,但不支持事务、不支持行锁、支持三种不同的存储格式:静态型、动态型和压缩型。 适合报表查询,结存表 适合用于插入新记录和读取记录、对应用的完整性和并发性要求低的也可以使用
InnoDB 5.5版本后是Mysql的默认数据库,支持事务和行级锁,事务处理回滚、崩溃修复和多版本并发的事务安全,处理速度相对慢一些,支持外键 对事物的完整性要求比较高的(银行、订单),要求实现并发控制(比如售票),频繁的更新、删除操作的数据库功能
ISAM MyISAM的前身,在mysql5.0版本以后就不再默认安装了  
Memory 内存存储引擎,拥有极高的插入和查询效率,但是会占用和数据量成正比的内存空间,只在内存上保存数据,意味着数据可能会丢失,相当于redis,存储的数据也不会很多 使用场景一般在小表,拥有最终的统计结存表比如每半个小时结存一次用户的下单情况,用户查询就很快,一般需要很快的临时表也可以使用

执行流程

物理结构

错误日志(errorlog)、二进制日志(bin log)、通用查询日志(general query log)、慢查询日志()

日志文件

错误日志

二进制文件

通用查询日志

慢查询日志

重做日志

回滚日志

中继日志

数据文件

你可能感兴趣的:(mysql逻辑架构)