加入收藏 | 设为首页 | 会员中心 | 我要投稿 海南站长网 (https://www.0898zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql命令 当面试官问你MySQL的架构图......

发布时间:2022-10-14 06:01:04 所属栏目:MySql教程 来源:互联网
导读: mysql架构图


当MySQL启动以后,初始化模块会从系统配置中读取系统参数和命令参数,初始化整个MySQL系统,同时Storage Engines(存储引擎)也会启动。
初始化结束之后,连接管理模块会监听客

mysql架构图

当MySQL启动以后,初始化模块会从系统配置中读取系统参数和命令参数,初始化整个MySQL系统,同时Storage Engines(存储引擎)也会启动。

初始化结束之后,连接管理模块会监听客户端的连接请求,相当于我们的B/S架构,当我们启动服务端的程序的时候,web服务器会开始监听浏览器客户端的连接请求。当有连接请求进来的时候,会将请求转发给线程管理模块去请求一个连接线程。

线程模块就相当于一个线程池一样,接到请求后会转发到用户模块,用户模块则是对请求进行一个grant操作,通过grant后会检查是否有空闲线程,如果有就取出与客户端连接,如果没有会重新建议一个线程再连接。

MySQL请求经过命令分发和解析进行执行,在MySQL Server有属于它自己的一个cache,如果执行的请求在缓存中有数据,则会从缓存中获取到返回给连接线程模块,连接线程将数据传递给客户端,请求结束。

我们可以查看当前mysql的缓存

如果不走cache,会转发给命令解析器根据解析结果走不同类型的模块,最后和存储引擎进行交互。

当一条命令执行完毕后,控制权都会还给连接线程模块,在上面各个模块处理过程中都依赖于核心API模块,比如:内存管理、小文件I/O,数字及字符串处理等。

MySQL的缓存机制

MySQL的缓存机制主要包括关键字缓存以及查询缓存。

概述

MySQL通过在内存中建立缓冲区buffer以及缓冲cache来提高mysql的查询性能。对于InnoDB存储引擎,MySQL采用buffer pool的方式缓存数据和索引,而对于MyISAM存储引擎,MySQL使用cache的方式缓存数据和索引。

而对于查询缓存机制,其实就是mysql缓存了sql执行语句以及查询结果,当运行了相同的sql,mysql服务器会从缓存中获取结果,而不会去转发到解析器解析并执行sql。

当然,如果表更改了。那么使用这个表的所有缓存查询都被清空。不管更改的是表中的任何数据或者是表结构的变化。所以对于频繁更改的表。查询缓存是不合适的,而对应一些不经常改变的数据并且有大量相同sql查询的表mysql命令,可以相对扩大缓存区的大小,提高性能。

工作原理 当MySQL接收到传入的sql语句时,会跟先前已经在解析器解析过的sql语句进行比较,如果相同,则返回已缓存的数据。sql语句一定是完全相同,只要是要给字母的大小不同,也会受到影响。

(编辑:海南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!