mysql体系架构。

1、初始化模块。

mysql启动的时候。初始化模块接管控制权。

初始化模块。读取配置文件。命令行参数。

分配全局内存缓存、初始化全局变量、结构信息、载入访问控制表、执行一些其他的初始化任务。

一旦初始化工作完成后,初始化模块把控制权交给连接管理器。开始接受客户端的连接。

读取配置文件的路径。

/usr/libexec/mysqld  --verbose --help | less

/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

2、连接管理模块。

初始化完成后。会把控制权给连接管理模块。

负责客户端的连接

当一个客户端的连接进来的时候,连接管理器执行一些网络协议任务。

并把控制权交给线程管理器。

3、线程管理模块。

连接管理器把控制权交给线程管理模块后。

线程管理模块,提高线程。这个线程可能是线程池里的。也可能是新建的。

一旦线程创建好之后,就把控制权交个用户模块。

4、用户模块。

一旦线程创建好之后,用户模块有了控制权。就会验证用户的

主机,用户,密码等。

验证成功后,就会把控制权交给命令分发器。

环境变量。

show global variables like ‘%connect%‘;

select @@max_connections;

服务器的最大连接数。

select @@max_user_connections;

当个用户的最大连接数。

实验:

set global max_connections=1;

select @@max_connections;

多开几个终端

会发现:ERROR 1040 (HY000): Too many connections

set global max_user_connections=1;

状态变量:

show global status like ‘%connect%‘;

Aborted_connects被拒绝的连接次数。比如用户,密码错误

Connections 被连接的次数。不管失败,成功都加1.

Max_used_connections 最大的并发量。不管失败,成功都加1.

5、命令分发器。

命令发过来后,会把控制权交给命令分发器。

如果是查询语句,就交给查询缓存模块

并把一些操作记录下来。日志记录模块。

如果是一个query类型的请求。会将控制权交个query解析器。query解析器首先分析是不是一个select类型

的query。如果是,则调用查询缓存模块。。让他检查改query在查询缓存中是否存储。

如果有,则直接将cache中的数据返回给连接线程模块。然后返回给客户端。

如果不是一个可以被cahce的query类型。或者cache中没有改query的数据,那么query将被进行传回给

query解析器。query解析器,把控制权给query分发器。

6、查询缓存模块

如果是查询语句,就交给查询缓存模块

7、日志记录模块。

命令分发器。调用日志记录模块。记录i日志

8、命令解析器。解析命令是什么命令。

如果是查询的话。=》查询优化器。

修改表。====》表变更模块

维护、优化===》表维护模块

复制===》复制模块

状态===》状态模块。

9、访问控制模块。

上面执行完后。就交给了访问控制模块。

验证用户,有没有相关权限。

10、表管理模块。

表锁

11、存储引擎接口。

存储引擎调用存储引擎。

12、存储引擎,干活的。

时间: 2024-10-09 12:55:45

mysql体系架构。的相关文章

MySQL 体系架构

MySQL 体系架构 本篇文章是对mysql体系结构进行了详细的分析介绍,需要的朋友参考下 上面一图是mysql的概览图,我们从上往下看, 我们把上面一图一分为二,我们可以吧它分为两个部分, 1,是connectors 的部分,即客户端部分 2,是大块的mysql server 把它个个部件拆开来看我们一个个来解析 1. connectors 指的就是mysql的客户端, 1. Management Serveices & Utilities: 这是mysql 的系统管理和控制工具,如bin 目

MySql体系架构

这篇文章应该是在第一篇发出,让读者对mysql有个整体的认知,由于小编个人知识水平认知局限,结果是在现在才把这些东西展示给大家. MySq体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的: 1 Connectors指的是不同语言中与SQL的交互 max_connections:就是整个MySQL实例的最大连接数限制 max_user_connections:是单个用户的最大连接数,这里未指明是哪个用户,是任意一个用户. 2 Management Serveices &

面向服务的体系架构(SOA)—架构篇

面向服务的体系架构(SOA)-架构篇 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概念.2002年的l2月,Gartner提出"面向服务的架构(SOA)"是"现代应用开发领域最重要的课题"之后.国内外计算机专家.学者掀起了对SOA的积极研究与探索. 在分布式的环境中,将各种功能都以服务的形式提供给最终用户或者其他服务.如今,企业级应用的开发都采

Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别

Hive架构 1)用户接口: CLI(hive shell):命令行工具:启动方式:hive 或者 hive --service cli ThriftServer:通过Thrift对外提供服务,默认端口是10000:启动方式:hive --service hiveserver WEBUI(浏览器访问hive):通过浏览器访问hive,默认端口是9999:启动方式:hive --service hwi 2)元数据存储(Metastore):启动方式:hive -service metastore

InnoDb 体系架构和特性 (Innodb存储引擎读书笔记)

后台线程 Master Thread 核心后台线程,主要负责将缓冲池的数据异步刷新到磁盘.例如脏页的刷新,插入缓冲的合并,undo 页的回收等. 每秒一次的操作: 日志缓冲刷新到磁盘,即使该事务还没有提交.该操作总是会发生,这个就是为了再大的事务,提交时间都很短. 当IO压力很小时(1s内发生的IO次数小于5% innodb_io_capacity)合并5% innodb_io_capacity 的插入缓冲. 当脏页比例大于 innodb_max_dirty_pages_cnt, 刷新 inno

JavaEE体系架构概述、MyBatis总结

JavaEE体系架构概述 java EE是sum公司发布的标准企业级应用规范集合,它提供了一个多层结构的分布式应程序模型,是开发基于网络的企业级应用首选平台.Java EE技术平台的核心思想是“容器”加组件 事务:有明确边界的一组序列,在应用程序中一个请求对应一个事务,当请求发送时,事务开始,当请求结束,事务也就结束.总的来说,事务有四个特性:1.原子性,一个请求要么成功,要么失败,不会再有其他情况:2.一致性,事务处理需要的和得到的时相同的:3.持久性,事务处理的结果时确认的.持久的,如果需要

MySQL Study案例之--MySQL体系和存储引擎

MySql Study案例之--MySql体系和存储引擎 1.数据库和实例     数据库:物理操作系统文件或其他形式文件类型的集合.在MySQL中,数据库文件可以是frm.myd.myi.ibd结尾的文件.当使用NDB引擎时,数据库文件可能不是操作系统上的文件,而是存放与内存之中的文件,但是定义仍然不变.      数据库实例:由数据库后台进程/线程以及一个共享内存区组成.共享内存可以被运行的后台进程/线程所共享.需要牢记的是,数据库实例才是真正用来操作数据库文件的. 在MySQL中,实例和数

InnoDB体系架构(二)内存

InnoDB体系架构(二)内存 上篇文章 InnoDB体系架构(一)后台线程 介绍了MySQL InnoDB存储引擎后台线程:Master Thread.IO Thread.Purge Thread.Page Cleaner Thread 四种. 这篇文章将介绍 InnoDB体系架构中的内存,主要有四小结分别为:缓冲池.缓冲池的管理.重做日志缓冲.额外内存缓冲. 以下图为InnoDB存储引擎的内存结构.   一.缓冲池 InnoDB存储引擎是基于磁盘存储的,按照页的方式进行管理的,理解为基于磁盘

MySQL逻辑架构(一)

MySQL 逻辑系统架构: 可以分为连接器,连接池,Sql接口,解释器,优化库,缓冲区,缓存,引擎 MySQL逻辑结构刻意看成二层架构,第一层通常叫做SQL Layer 在数据库系统处理底层数据 包括权限判断,SQL解析执行计划优化,query chche的出理等等第二层就是存储引擎 ,通常叫做 storageEngine Layer 也就是底层数据存取操作的实现部分有多种存储引擎共同组成MySQL存储引擎介绍:MySQL在5.1之前的版本中,存储引擎是需要在MySQL安装的时候就必须和MySQ