mysql的架构图(连接层,服务层,引擎层,存储层)
一 mysql的架构图1.连接层:最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的 通信。2.服务层:一些sql接口,解析器,优化器,缓存3.存储引擎:存储引擎层,存储引擎真正的负责了 MySQL 中数据的存储和提取,服务器通过 API 与存储引擎进行通信。4.数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引
·
一 mysql的架构图
1.1 架构图
1.连接层:最上层是一些客户端和连接服务,包含本地 sock 通信和大多数基于客户端/服务端工具实现的类似于 tcp/ip 的 通信。
2.服务层:一些sql接口,解析器(parser),优化器(optimizer),缓存(caches或者buffers)
3.存储引擎:存储引擎层,存储引擎真正的负责了 MySQL 中数据的存储和提取,服务器通过 API 与存储引擎进行通信。
4.数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互
二 执行流程
2.1 mysql的执行流程
mysql
的查询流程大致是:
1.mysql 客户端通过协议与 mysql
服务器建立连接,
发送查询语句,先检查查询缓存
,如果命中,直接返回结果,将缓存中的结果返回给用户即可,这将大大提高系统的性能。
2.如果没有命中:解析,预处理,优化
2.1 语法解析器和预处理:首先
mysql
通过关键字将
SQL
语句进行解析,并生成一颗对应的“解析树”。
2.2 mysql
解析器将使用 mysql 语法规则验证和解析查询,
2.3 预处理器则根据一些
mysql
规则进一步检查解析数是否合法。
2.4 优化器:优化器将解析树被认为是合法的sql,将其转化成执行计划。一条查询可以有很多种执行方式,
优化器的作用就是找到这其中最好的执行计划
。
三 存储引擎比较
3.1 查看引擎
1.查看引擎
show variables like '%storage_engine%'
3.2 存储引擎的比较
1.存储引擎比较
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献21条内容
所有评论(0)