MySQL逻辑架构图

大概流程

  1)mysql启动以后,初始化模块就从系统配置文件中读取系统参数和命令参数,初始化整个系统,同时存储引擎也会启动;

  2)初始化结束后,连接管理模块会监听客户端的连接请求,并将连接请求转发给线程管理模块去请求一个连接线程;

  3)线程模块接到请求后会调用用户模块进行授权检查,通过授权以后会检查是否又空闲线程,如果有取出并与客户端连接,如果没有则新建立建立一个线程与客户端连接;

  4)mysql请求分为两种,一种是需要命令解析和分发才能执行,另一种可以直接执行;不管哪种,如果开启了日志,那么日志模块会记录日志;

  5)如果是Query类型的请求,会将控制权交给Query解析器,Query解析器检查是否Select类型,如果是则启动查询缓存模块,如果缓存命中则将缓存数据返回给连接线程模块,连接线程将数据传递到客户端;如果没有缓存或者不是一个可以缓存的查询,此时解析器会进行相应的处理,通过查询分发器给相关的处理模块;

  6)如果解析器结果是DML/DDL,则交给变更模块;如果是检查、修复的查询交给表维护模块,如果是一条没有被缓存的语句,则交给查询优化器模块。实际上表变更模块又分为若干小模块,例如:insert处理器、delete处理器、update处理器、create处理器,以及alter处理器这些小模块来负责不同的DML和DDL。总之,查询优化器、表变更模块、表维护模块、复制模块、状态模块都是根据命令解析器的结果不同而分发给不同的类型模块,最后和存储引擎进行交互。

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

连接层

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

服务层

  第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析以及优化部分内置函数的执行,所有跨存储引擎的功能也在这一层实现,如过程、函数等,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询的顺序是否利用索引,最后生成相应的执行操作。

引擎层

  存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信,不同的存储引擎具有功能不同

 1 # 编码
 2 show variables like ‘%char%‘;
 3 +--------------------------------------+----------------------------+
 4 | Variable_name                        | Value                      |
 5 +--------------------------------------+----------------------------+
 6 | character_set_client                 | utf8                       |
 7 | character_set_connection             | utf8                       |
 8 | character_set_database               | latin1                     |
 9 | character_set_filesystem             | binary                     |
10 | character_set_results                | utf8                       |
11 | character_set_server                 | latin1                     |
12 | character_set_system                 | utf8                       |
13 | character_sets_dir                   | /usr/share/mysql/charsets/ |
14 | validate_password_special_char_count | 1                          |
15 +--------------------------------------+----------------------------+
16 9 rows in set (0.01 sec)
17 引擎
18 show engines;
19 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
20 | Engine             | Support | Comment                                                        | Transactions | XA   | Savepoints |
21 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
22 | InnoDB             | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
23 | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
24 | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
25 | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
26 | MyISAM             | YES     | MyISAM storage engine                                          | NO           | NO   | NO         |
27 | CSV                | YES     | CSV storage engine                                             | NO           | NO   | NO         |
28 | ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |
29 | PERFORMANCE_SCHEMA | YES     | Performance Schema                                             | NO           | NO   | NO         |
30 | FEDERATED          | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
31 +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
32 9 rows in set (0.00 sec)
33
34 show variables like ‘%storage_engine%‘;

存储层

  数据存储层主要是将数据存储在运行与裸设备的文件系统之上,丙烷层与存储引擎的交互

原文地址:https://www.cnblogs.com/Alexephor/p/11637797.html

时间: 10-09

MySQL逻辑架构图的相关文章

MySQL 高可用+优化 架构图

MySQL 高可用加优化架构图

软件各种架构图2

Spring MVC 核心架构图 架构图对应的DispatcherServlet核心代码如下: //前端控制器分派方法 protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExecutionChain mappedHandler = nu

最简单直观的分布式架构图

这张图第一眼看过去非常的空洞,但是我认为却是最理想化的分布式架构图.不管什么样的分布式系统,都是从这套系统上改造演变过去的.下面我就来解释一下这张图每个步骤的意义. 用户群访问某个网站,比如说www.baidu.com,我们先忽略DNS解析和CDN服务器的作用,直接请求服务器,穿过防火墙,通过负载均衡来分配用户的请求,负载可以提高整个架构的抗压和流量的负载能力,将用户请求平均分配到应用服务器,有效的解决了单点失效的问题,通过应用服务器要交互的是数据层,也就是我们所说的MySql或者Oracle,

LoadRunner相关架构图

LoadRunner概览图: Lr架构图:

飞达资讯App总体介绍及关系架构图

飞达资讯App总体介绍: 下图为飞达资讯App的关系架构图: 该App关系架构图所需的图片云盘链接地址:http://pan.baidu.com/s/1gfHIe4b 提取密码:x1nr 该App的云盘下载地址:http://pan.baidu.com/s/1eS8WGXs 提取密码:5eqe 由于作者水平有限和时间仓促,该App可能存在一些疏漏和不当之处,敬请读者批评指正. 作者联系方式: 电话:15223328653,QQ:2099904576,邮箱:[email protected]

mysql 逻辑架构(三层)

1.客户端(主要处理连接,授权认证,安全等). 2.MYSQL服务器层(核心服务功能都在这层,包括,查询解析,分析,优化,缓存以及所有的内置函数,所有跨存储引擎的功能都在这层实现:存储过程,触发器,视图等). 3.存储引擎层(负责MYSQL中数据的存储和提取,服务器通过API与存储引擎进行通信.这些接口屏蔽了不同存储引擎之间的差异.存储引擎不会去解析SQL,InnoDB是个例外,它会解析外键定义.不同的存储引擎间不会相互通信,只是简单的层服务器请求.) mysql 逻辑架构(三层),布布扣,bu

利用mysqlbump实现MySQL逻辑备份与恢复

mysqldump作为重要的MySQL备份工具,功能相当强大.备份参数.恢复策略,需要仔细研究. (1)基本语法 备份单个数据库或单个数据库中的指定表: mysqldump [OPTIONS] database [tables] 示例: 1.备份单个数据库mysql:mysqldump -uroot -p mysql > mysql.sql 2.备份单个数据库mysql的指定表user:mysqldump -uroot -p mysql user > mysql.user.sql 备份多个数据

十台服务器集群架构图

注释: 此架构图体现了动态网站的速度.稳定.冗余.安全等. 在速度方面,咱们做了nginx协助tomcat负载均衡,实现多用户访问同时处理,加快处理速度.在速度方面,咱们还做了tomcat和nginx的动静分离,众所周知tomcat专门处理jsp的动态界面,nginx在处理静态界面又是比较擅长,利用这个特点,将静态页面和图片专门由nginx server处理,动态页面则由tomcat服务器处理了,一个网页由多个服务器上的不同服务处理自己擅长的界面,速度自然而然就快很多了. 在安全方面,咱们做了n

为什么需要架构图,怎么画?

Technorati 标签: 架构图,架构,交流,布局 不知不觉中做架构师也已经4年了,最初的感觉只是一个名号,不再把代码作为强制的任务,后来开始慢慢的转变工作内容.画图,成为了我的主要工作.我可能不是每天都在写代码,但却是每天都在画图,而且我越来越觉得画图让我更容易说清楚. 画架构图有几个好处:看清楚系统包含哪几个部分,各个部分实现什么职责,相互之间的关系是什么.当和别人讨论的时候,通过架构图可以很容易的把讨论的问题框定在一个确定的范围里,可以很容易的察觉出彼此之间存在误解的一些区域,比如对一

vdceye onvif manager 软件架构图

https://github.com/xsmart vdceye onvif manager 软件架构图,布布扣,bubuko.com