Mysql逻辑架构

Mysql逻辑架构

  • 阅读目录
    • 整体说明
    • 连接层(client层)
    • 服务层(server层)
    • 引擎层
    • 存储层

阅读目录

整体说明

1.Mysql逻辑架构描述了Mysql系统中各个组件的关系
2.MySQL的逻辑架构包含以下四部分:
1.连接层(client层)
2.服务层(server层)
3.引擎层
4.存储层
Mysql逻辑架构_第1张图片

连接层(client层)

最上层是一些客户端和连接服务,包含本地socket通信和大多数基于客户端/服务端工具实现类似于tcp/ip的通信,主要完成一些类似于实现的连接处理、授权认证、及相关安全方案。在该层上还引入了线程池的概念,为通过认证安全接入的客户端提供线程,同样在该层上可以实现基于SSL的安全链接,服务器为安全接入的每个客户端验证它所具有的操作权限。

服务层(server层)

第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行,所有跨存储引擎的功能也在这一层实现,如过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作,如果是select语句,服务器还会查询内部的缓存,如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。
sql接口
sql接口是客户端与服务端之前交互的工具, 主要负责客户端发送过来的sql请求命令,然后把sql请求发送到其他组件,并接受其他组件返回的结果数据,最后将结果数据返回给客户端。mysql支持DML(数据操纵语言)、DDL(数据自定语言)、存储过程、视图、触发器等多种SQL语言接口。

DML:数据操纵语言用于数据查询(select)、修改(update)、插入(insert)、删除(delete)数据

DDL:数据自定语言用于改变数据库结构,包括插件、删除、修改表的操作。
1.创建表:create table
2.修改表 alter table
3.删除表 drop table

解析器
SQL命令传到解析器会被解析器验证和解析。类似于java编译的过程。解析器主要执行语法分析、语义分析、然后生成解析树输出。

语法分析:语法分析主要功能识别表名、字段等。
语义分析:语义分析主要分析是否符合mysql语法规则

优化器
SQL在查询之前会使用优化器进行优化,就是优化客户端的SQL语句,根据SQL语句进行一系列的应用技术进优化,得到一个最优的执行计划。
这些技术包括重写查询、确定扫描表的顺序和选择要使用的正确索引。
查询缓存(Cache 和 Buffer)
查询缓存的功能就是将客户端提交的select语句和返回结构化数据存储在cache到内存中。在解析查询之前,MYSQL服务器会先查询缓存。如果在客户端发出的查询请求且命中缓存,那服务器会跳过解析、优化、执行、直接返回缓存中的结果。但是不建议使用缓存,一旦表有更新缓存就清空,而且一般情况命中的缓存数据本来就少。在mysql 8.0板块开始已经删除该功能

引擎层

存储引擎是真正的负责了Mysql中数据的存储和提取,可插拔的存储引擎使Mysql成为大多数开发人员的首选。不同的存储引擎都会实现统一的API接口,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,比如最常用的的存储引擎就是InnoDb和MyISAM。

存储层

数据存储层,主要将数据存储在运行于裸设备的文件系统之上,并完成和存储引擎的交互。

你可能感兴趣的:(Mysql,mysql,架构,数据库)