Mysql学习6-架构

在这里插入图片描述
上来先看Mysql架构图(摘自《MySQL技术内幕 InnoDB存储引擎》)。Mysql主要包括以下组件:

  1. 连接器 Connectors
  2. 系统管理&控制工具
  3. 连接池
  4. Sql接口
  5. Sql解释器
  6. Sql优化器
  7. 缓存池
  8. 存储引擎
  9. 文件系统

接下来介绍一下每个组件的简要功能,由于每个组件都可以展开讲很多,这篇文章只会对组件做一个简要的描述,有一个简单的概念。

连接器(Connectors)

Connectors组件是Mysql向外提供的交互组件,支持多种语言与Mysql的交互,如java, .net, php等。

系统管理&控制工具(Management Service & Utilities)

提供对Mysql的集成管理,如备份与恢复、安全管理、集群、配置等。

连接池(Connection Pool)

负责监听对客户端向Mysql Server端的各种请求,接收请求,转发请求到目标模块。Mysql会为每个成功连接Mysql Server的客户端创建或分配一个线程,该线程负责客户端与Mysql Server端的通信,接收客户端发送的命令,传递服务端的结果信息等。
想必大家都听说过数据库连接数过多,就是会导致连接池不够用,造成拒绝。
查看及设置最大连接数:

show variables like '%max_connections%';
set GLOBAL max_connections=500;  //重启后失效

通过配置文件修改最大连接数:my.conf -> max_connections=512
连接数不能过大,因为Mysql会为每个连接提供连接缓冲区。

SQL接口(SQL Interface)

接受用户的sql命令,如DML、DDL、存储过程等,并且返回用户需要查询的结果。

SQL解释器(Parser)

分析SQL命令语法的合法性,并尝试将sql命令分解成数据结构,若解析失败,则提示SQL语句不合法。主要功能是将sql语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。

SQL优化器(Optimizer)

查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询

缓冲池(Caches & Buffers)

查询缓存,如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。通过LRU算法将数据的冷端溢出,未来得及刷新到磁盘的数据页,叫脏页。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等。

存储引擎(Pluggable Storage Engines)

插件式存储引擎。提供各种存储引擎,真正的负责MySQL中数据的存储和提取。
Mysql支持的存储引擎:InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中BDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。
在这里插入图片描述

存储系统

数据存储层,主要是将数据存储到设备的文件系统中,并完成与存储引擎的交互。

SQL的执行流程

数据库通常不会被单独使用,而是由其它编程语言通过SQL支持接口调用MySQL。由MySQL处理并返回执行结果。

  1. 编程语言通过SQL支持接口调用MySQL,
  2. MySQL收到请求后,会将该请求暂时放在连接池,并由管理服务与工具进行管理。
  3. 当该请求从等待队列进入到处理队列时,管理器会将该请求传给SQL接口,SQL接口接收到请求后,它会将请求进行hash处理并与缓存中的数据进行对比,如果匹配则通过缓存直接返回处理结果;否则,去文件系统查询
  4. 由SQL接口传给后面的解析器,解析器会判断SQL语句是否正确,若正确则将其转化为数据结构。
  5. 解析器处理完毕后,便将处理后的请求传给优化器控制器,它会产生多种执行计划,最终数据库会选择最优的方案去执行。
  6. 确定最优执行计划后,SQL语句交由存储引擎处理,存储引擎将会到文件系统中取得相应的数据,并原路返回。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值