美文网首页
Mysql基本架构

Mysql基本架构

作者: 会长__ | 来源:发表于2018-11-22 23:25 被阅读24次

1.mysql的组成

简图

FA77AB34A02F0399C8AA7B39EA010BA2.jpg

逻辑架构

image.png

客户端

PHP JAVA Go 等

服务层

连接器:管理连接,权限验证。
查询缓存: 命中则直接返回结果。
分析器:词法分析,语法分析。
优化器:执行计划生成,索引选择。
执行器:操作引擎,返回结果。

存储引擎层

存储引擎:存储数据提供读写接口。

数据存储层

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

2.客户端

首先以PHP为例连接mysql

$db = mysql_connect(ip:port,user,password);

这个php连接mysql语句就是客户端工具,用来跟数据库服务端建立tcp连接。

3.连接器

当客户端和服务端建立起tcp握手后,连接器开始认证身份。

用户名或密码不对,会收到Access denied for user错误,客户端结束执行。
如通过,连接器在权限表中查出拥有的权限。

连接完成后,如果没有后续的动作,这个连接就处于sleep状态。


image.png

客户端如果8小时(默认时间,由wait_timeout控制)没有动静则自动断开。

4. 查询缓存

MySQL的查询缓存是MySQL内置的一种缓存机制。比如我们发送select * from user where name=tuzisir 这么一个查询,MySQL首先检索内存中是否有数据并且数据是否过期,如果没有数据或者数据已经过期就去数据库中查找,如果有数据并且没有过期就直接返回数据。对于sql的匹配规则非常简单,就是字符串的比较,只要字符串相同,那么就认为是同一个查询。

5.分析器

跟语言的分析是一样的。

词法分析: sql 关键词是否正确

(拿php举例,一条语句 if else 解析出这是正确的而不是 fi else)

语法分析: 格式是否正确

(拿php举例,一条语句 if else 解析出这是正确的而不是 else if)

6.优化器

MySQL采用了基于开销的优化器,以确定处理查询的最解方式,也就是说执行查询之前,都会先选择一条自以为最优的方案,然后执行这个方案来获取结果。在很多情况下,MySQL能够计算最佳的可能查询计划,但在某些情况下,MySQL没有关于数据的足够信息,或者是提供太多的相关数据信息,估测就不那么友好了。

7.执行器

执行器包括执行查询语句,返回查询结果,生成执行计划包括与存储引擎的一些处理操作。

8.存储引擎

InnoDb
MylSAM
Archive
Blackhole
CSV
Memory
Federated
Mrg_MylSAM
NDB集群

相关文章

网友评论

      本文标题:Mysql基本架构

      本文链接:https://www.haomeiwen.com/subject/hjvrqqtx.html