精尽MSQL《一》MySQL架构体系

本文介绍了MySQL的C/S模式及单进程多线程服务结构,详细解析了MySQL的几大核心模块,包括Connectors、ConnectionPool、ManagementService&Utilities等,并阐述了MySQL的工作原理及其常用管理工具。

 

MySQL是一个典型的C/S模式,单进程多线程的服务结构。

MySQL自带的客户端工具在/usr/local/mysql/bin下,如:mysql、 mysqladmin、mysqldump等;服务端程序是mysqld(即守护进程,二进制的程序)

 

MySQL几大模块组件

 

 

Connectors(连接组件):对客户端提供连接,如java,.net,php等语言可以通过连接组件来执行SQL语句。

Connection Pool(连接池组件):负责监听对客户端向MySQL Server端的各种请求,接收请求,转发请求到目标模块。每个成功连接MySQL Server的客户请求都会被创建或分配一个线程,

                                                        该线程负责客户端与MySQL Server端的通信,接收客户端发送的命令,传递服务端的结果信息等。

Management Service & Utilities(管理服务组件和工具组​​​​​件):提供对MySQL的集成管理,如备份(Backup),恢复(Recovery),安全管理(Security)等。

SQL Interface(SQL接口组件):接收用户SQL命令,如DML,DDL和存储过程等,并将最终结果返回给客户端。

Parser(解析器组件):首先校验SQL命令语法的合法性,并尝试将SQL命令解析成数据结构,若解析失败,则提示SQL语句不合理。

Optimizer(优化器组件):按照标准流程对SQL命令进行优化分析。

Caches & Buffers(缓存主件):  缓存和缓冲组件

Pluggable Storage Engines(MySQL存储引擎):

          存储引擎的作用:作用一:管理表创建,数据检索,索引创建等,作用二:满足自定义存储引擎开发。

         存储引擎的分类:常见的存储引擎有InnoDB存储引擎,MyISAM存储引擎,Memory存储引擎等等

File System & File Logs(文件系统): 负责存储MySQL 数据库文件和日志文件

 

MySql工作原理

 

首先程序的请求会通过mysql的connectors与其进行交互,请求到处后,会暂时存放在连接池(connection pool)中并由处理器(Management Serveices & Utilities)管理。当该请求从等待队列进入到处理队列,管理器会将该请求丢给SQL接口(SQL Interface)。SQL接口接收到请求后,它会将请求进行hash处理并与缓存中的结果进行对比,如果完全匹配则通过缓存直接返回处理结果;否则,需要完整的走一趟流程:

   (1)由SQL接口丢给后面的解释器(Parser),解释器会判断SQL语句是否正确,若正确则将其转化为数据结构,否则抛出异常。

   (2)解释器处理完,再到优化器(Optimizer),它会产生多种执行计划,最终数据库会选择最优化的方案去执行。

   (3)确定最优执行计划后,此时SQL语句才能交由存储引擎(Storage Engines)处理,存储引擎将会到后端的存储设备中取得相应的数据,并原路返回给程序。

 


MySql管理工具

 

mysql(命令行SQL工具):可进入指定数据库,执行SQL语句脚本。

mysqladmin(执行管理操作的工具 ):

检查服务器配置,当前运行状态 ,创建,删除数据库 ,

设置新密码 ,flush-privileges,reload重新加载权限数据表 ,

refresh刷新数据表,重启日志 ,start-slave从服务器上启动复制 ,

stop-slave从服务器上停止复制

mysqldump(数据库逻辑备份程序 ):   示例 mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql

 

源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第次运行时会自动生产个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值