MySQL的核心模块

MySQL的核心模块

会有助于理解MySQL整个的执行,主要是参考《MySQL核心技术》这本书
先看图理解下整个流程,再去看各个模块的功能
在这里插入图片描述

服务器初始化模块:
在启动时完成服务器初始化。
连接管理器:
侦听来自客户端的连接,然后将请求派发给线程管理器
线程管理器:
负责跟踪线程,确保分配线程,以处理来自客户端的连接。
如果是从服务器,则会启动两个线程:SQL线程和I/O线程。
连接线程:
是在一个已建立的连接上处理客户端请求的工作核心。
用户验证模块:
验证所连接的用户,并对包含该用户层权限信息的结构和变量进行初始化。
访问控制模块:
检验客户端用户是否具有足够的权限来执行所七牛的操作。
解析器:
负责解析查询并生成解析树。
命令调度器:
负责将请求转发给知道如何处理这些请求的较低层次模块
查询高速缓存模块:
高速缓存查询结果,并在可能的时候通过提交高速缓存结果尝试短路查询的执行
优化器:
负责创建回答查询的最佳策略,并执行该策略,向客户端提交结果,
表管理器:
负责创建、读取和修改表定义文件(.frm扩展名)、维护表描述符高速缓存(即表高速缓存),一级管理表锁
表修改模块:
负责诸如表创建、删除、重命名、移除、更新或插入之类的操作。
表维护模块:
负责表维护操作,诸如检查、修理、备份、恢复、优化(碎片整理)及解析
状态报告模块:
负责回答关于服务器配置设置、性能追踪变量、表结构信息、复制进度、表告诉缓存状况
抽象存储引擎接口(表处理器):
  实际上是一个名为handler的抽象类和一个名为handlerton的结构。提供了执行低层次存储与检索操作的标准化接口
存储引擎的实现:
每个存储引擎都通过扩展前面的提过的handler类提供了一个操作标准接口。
日志记录模块:
负责维护较高层次的(逻辑)日志。一个存储引擎可能会为了本身的目的而额外维护自己的低层次(物理或逻辑)日志,这类的存储引擎自己会负责完成。这里的逻辑日志包括二进制更新日志、命令日志(用于服务器监视和应用程序调试)以及缓慢查询日志
主复制服务器模块:
负责实现主服务器上的复制功能。最常用的功能是根据请求不断向从服务器发送复制日志事件。
从复制服务器模块:
负责实现从服务器的复制功能,任务是从主服务器处检索更新,并将这些更新应用在从服务器上。从4.0版开始从服务器使用两个线程。网络I/O线程请求并接收来自主服务器的源源不断的更新,并将更新记录在本地中继日志中。当SQL线程从中继日志中读取这些更新是,就回应用这些更新。
客户端/服务器协议API:
MySQL客户端服务器通信协议为协议栈中的操作系统协议(TCP/IP或本地套接字)
这一模块实现在整个服务器中使用的API,以创建、读取、解释和发送写一遍。
低层次网络I/O API :
   提供了低层次网络I/O和SSL会话的抽象。
核心API :
提供了用于可移植的文件I/O、内存管理、字符串操作、文件系统导航、格式化打印、丰富的数据结构和算法集,以及大量其他功能
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值