mysql程序结构 【思维导图】

 一条SQL语句的执行过程

连接层 (1)提供连接协议:TCP/IP 、SOCKET (2)提供验证:用户、密码,IP,SOCKET (3)提供专用连接线程:接收用户SQL,返回结果 
通过以下语句可以查看到连接线程基本情况 mysql> show processlist;

 SQL层 (重点)

(1)接收上层传送的SQL语句 (2)语法验证模块:验证语句语法,是否满足SQL_MODE(SQL 语句运行的规则) (3)语义检查:判断SQL语句的类型 
DDL :数据定义语言 DCL :数据控制语言 DML :数据操作语言 DQL: 数据查询语言 .... 
(4)权限检查:用户对库表有没有权限 (5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案. (6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划  代价模型:资源(CPU IO MEM)的耗损评估性能好坏            
(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果 
执行结果:在磁盘的xxxx位置上 (8)提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能 (9)提供日志记录(日志管理章节):binlog,默认是没开启的。

存储引擎层(类似于Linux中的FS文件系统)

(1)负责根据SQL层执行的结果,从磁盘上拿数据。 (2)将16进制的磁盘数据,交由SQL结构化成表(转化成人类可读)。 (3)连接层的专用线程返回给用户。 

mysql程序结构 【思维导图】

 

 

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/7079

(0)
杰斯的头像杰斯
上一篇 2023年2月6日 下午5:38
下一篇 2023年2月8日 下午6:09

相关推荐

  • 在 Kubernetes 上最小化安装 KubeSphere

    除了在 Linux 机器上安装 KubeSphere 之外,您还可以将其直接部署在现有的 Kubernetes 集群上。本快速入门指南将引导您完成在 Kubernetes 上最小化安装 KubeSphere 的一般性步骤。 准备工作 备注 部署 KubeSphere 确保您的机器满足安装的前提条件之后,可以按照以下步骤安装 KubeSphere。 执行以下命…

    2023年4月18日
    1.0K00
  • 服务器中挖矿木马病毒如何解决(kswapd0进程使cpu爆满)

    现象:系统cpu持续使用过高,造成无法远程连接 分析过程:一开始机器不能远程登录,但又能够ping通,登录信息也没有修改过,判断可能远程登录服务故障,后登录机器top发现,cpu使用率百分百,这很不正常,上面只运行了一个网站与数据库,发现异常进程kswapd0,查找资料后发现其是挖矿程序 解决方案:排查kswapd0进程 top 执行命令 netstat -…

    2022年12月13日
    1.6K00
  • Shell脚本——提取目录名和文件名

    在许多场景下,我们都需要对文件名称或者文件所在的目录进行操作,已达到我们业务目的。通常的操作是由路径中提取文件名,从路径中提取目录名,提取文件后缀等等一系列的操作。 一、${} 1.${var##*/} 2.${var##*.} 3.${var#*.} 4.${var%/*} 5.${var%%.*} 6.总结 其实 ${} 并不是专门为提取文件名或目录名的…

    2024年2月18日
    1.3K00
  • linux之运维性能命令

    在 Linux 系统中,有许多命令和工具可以帮助运维人员监控系统状态、性能以及定位问题。以下是一些常用的运维相关命令: top: 如前所述,实时显示进程的资源占用情况。 htop: 类似于 top,但提供了一个更为用户友好的界面,支持颜色显示和滚动。 vmstat: 报告有关系统进程、内存、分页、块 IO、陷阱和 CPU 活动的信息。 iostat: 用于监…

    2024年7月3日
    1.9K00
  • MySQL 如何使用离线模式维护服务器

    离线模式 作为 DBA,最常见的任务之一就是批量处理 MySQL 服务的启停或其他一些活动。在停止 MySQL 服务前,我们可能需要检查是否有活动连接;如果有,我们可能需要把它们全部杀死。通常,我们使用 pt-kill 杀死应用连接或使用 SELECT 语句查询准备杀死语句。例如: MySQL 有一个名为 offline_mode 的变量…

    2023年10月20日
    1.0K00

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信