MySQL的基础架构之内部执行过程

图片

MySQL的逻辑架构图

如上图所示,MySQL可以分为Server层和存储引擎层两部分:

1)Server层涵盖了MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等;

2)存储引擎层负责数据的存储和提取,其架构是插件式的,支持InnoDB、MyISAM、Memory等多个。从MySQL5.5.5版本开始,InnoDB成为了默认的存储引擎。

下面来依次看一下Server层每个部分的功能:

1)连接器,负责跟客户端建立连接、获取权限、维持和管理连接。这里有个点需要注意:一个用户成功建立连接后,即使用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限,修改完成后,只有再新建的连接才会使用新的权限设置;

2)查询缓存,执行过的语句及其结果可能会以key-value对的形式,被直接缓存在内存中,key是查询的语句,value是查询的结果。但是在大多数情况下都不建议使用查询缓存,因为弊大于利,原因是:查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。请注意:从8.0开始已经将查询缓存的整块功能删掉了;

3)分析器,先做“词法分析”,再做“语法分析”。词法分析就是将SQL语句中的select、update、delete等关键字以及表名、字段名准确的识别出来;语法分析就是要保证咱们输入的SQL语句满足MySQL语法;

4)优化器,主要功能是当表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序;

5)执行器,开始执行的时候,首先判断对这个表有没有权限,如果没有权限,就会返回没有权限的错误,如果有权限,就打开表继续执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/319322.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql count统计去重的数据

不去重,是4 : SELECT COUNT(NAME) FROM test2 明显里面包含了2个 name 等于 mike的数据, 所以需要做去重 : 通过结合 count 函数和 DISTINCT 关键字 SELECT COUNT(DISTINCT NAME) FROM test2 好了就到这。

【基础篇】九、程序计数器 JVM栈

文章目录 0、运行时数据区域1、程序计数器2、JVM栈3、JVM栈--栈帧--局部变量表4、JVM栈--栈帧--操作数栈5、JVM栈--栈帧--桢数据6、栈溢出7、设置栈空间大小8、本地方法栈 0、运行时数据区域 JVM结构里,类加载器下来,到了运行时数据区域,即Ja…

【UEFI基础】EDK网络框架(通用函数和数据)

通用函数和数据 DPC DPC全称Deferred Procedure Call。Deferred的意思是“延迟”,这个DPC的作用就是注册函数,然后在之后的某个时刻调用,所以确实是有“延迟”的意思。DPC在UEFI的实现中包括两个部分。一部分是库函数DxeDpcLib,…

vue3解决切换tab页每次切换加载数据导致数据缓慢问题

const tabchangee>{ data.activity e vedioLoad(data.activity)//加载数据 加载的时候传值过去 }解决方法: 使用标识符来进行辨认 有两个tab页 搞个动态加载 在开头的vedioload还没开始加载的时候判断是否加载过 入股已经加载过 则返回 不要重新加载 loadvideo…

Sonarqube安装(Docker)

一,拉取相关镜像并运行 # 拉取sonarqube镜像 docker pull sonarqube:9.1.0-community在运行之前要提前安装postgres并允许,新建数据库名为sonar的数据库 Docker安装postgres教程 docker run -d --name sonarqube --restartalways \ -p 19000:9000 \ …

英飞凌AURIX 2G TC3xx新一代芯片架构系列介绍-概论

英飞凌AURIX 2G TC3xx新一代芯片架构系列介绍-概论

SSM的校园二手交易平台----计算机毕业设计

项目介绍 本次设计的是一个校园二手交易平台(C2C),C2C指个人与个人之间的电子商务,买家可以查看所有卖家发布的商品,并且根据分类进行商品过滤,也可以根据站内搜索引擎进行商品的查询,并且与卖…

Grafana UI 入门使用

最近项目上需要使用Grafana来做chart,因为server不是我在搭建,所以就不介绍怎么搭建grafana server,而是谈下怎么在UI上具体操作使用了。 DOCs 首先呢,贴一下官网doc的连接,方便查询 Grafana open source documenta…

git提交操作(不包含初始化仓库)

1.进入到本地的git仓库 查看状态 git status 如果你之前有没有成功的提交,直接看第5步。 2.追踪文件 git add . 不要提交大于100M的文件,如果有,看第5步 3.提交评论 git commit -m "你想添加的评论" 4.push (push之前可以再…

基于ssm西安旅游管理系统论文

摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对西安旅游信息管理的提升&#x…

卷积神经网络相关知识点

梯度下降算法 写的都很好,第一个看不懂可以接着看第二个,第二个里面有复现代码,第三篇是一篇综述,进阶阶段可以看。 详解梯度下降算法https://blog.csdn.net/JaysonWong/article/details/119818497线性回归模型——梯度下降算法…

认真学SQL——MySQL入门之环境准备

一.认识mysql数据库 1.1数据库概述 数据库概念: 存储数据的仓库,本质是一个文件系统 1.2数据库分类: 关系型数据库: 必须遵循SQL规范,强调以二维表格的形式存储数据 举例: MySQL ORACLE DB2 SqlServer SQLite 非关系型数据: NoSQL不仅仅是SQL,强调以key-value形…