MySQL逻辑架构简介
- MySQL逻辑架构图
MySQL逻辑架构图
● Connectors指的是不同语言中与SQL的交互
● Connection Pool管理缓冲用户连接,线程处理等需要缓存的需求。MySQL数据库的连接层
● Management Serveices & Utilities系统管理和控制工具。备份、安全、复制、集群等等
● SQL Interface接受用户的SQL命令,并且返回用户需要查询的结果
● ParserSQL语句解析器
● Optimizer查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化。就是优化客户端请求query,根据客户端请求的 query 语句,和数据库中的一些统计信息,在一系列算法的基础上进行分析,得出一个最优的策略,告诉后面的程序如何取得这个 query 语句的结果。For Example: select uid,name from user where gender = 1;这个select查询先根据where语句进行选取,而不是先将表全部查询出来以后再进行gender过滤;然后根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤。最后将这两个查询条件联接起来生成最终查询结果
● Caches & Buffers查询缓存
● Pluggable Storage Engines存储引擎接口。MySQL区别于其他数据库的最重要的特点就是其插件式的表存储引擎(注意:存储引擎是基于表的,而不是数据库)
● File System数据落地到磁盘上,就是文件的存储
和其他数据库相比,MySQL有点与众不同,主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需求选择合适的存储引擎
通过图解,可将MySQL整体逻辑架构从上至下分为四层。具体如下:
- 连接层,最上层是一些客户端和连接服务,包含本地sockt通信和大多数基于客户端/服务端工具实现的类似TCP/IP的通信,主要完成一些类似于连接处理,授权认证,及相关的安全方案,在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程,同样在该层上可以实现基于SSL的安全链接,服务器也会为安全接入的每个客户端验证它所具有的操作权限。
- 服务层 ,MySQL的核心服务功能层,是MySQL的核心,包括查询缓存,解析器,解析树,预处理器,查询优化器。主要进行查询解析,分析,查询缓存,内置函数,存储过程,触发器,视图等,select操作会先检查是否命中查询缓存,命中则直接返回缓存数据,否则解析查询并创建对应的解析树。
- 引擎层,存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信,不同的存储引擎具有的功能不同,可以根据自己的实际需要进行选取。
- 存储层,数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。