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.mzph.cn/news/595151.shtml

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

相关文章

Day22 112路径总和 113路径总和II 106中后构造二叉树/中前构造二叉树 654最大二叉树

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 递归: 可以采用深度优先的递归方式,前中后序都可以(因为中节点没有处理逻辑)。首先确定参…

放大镜Scratch-第14届蓝桥杯Scratch省赛真题第3题

3. 放大镜(50分) 评判标准: 10分:满足"具体要求"中的1); 15分:满足"具体要求"中的2); 25分,满足"具体要求"中的3&#xff…

C#高级:Lambda表达式分组处理2(WITH ROLLUP关键字)

目录 一、问题引入 二、with rollup查询 三、去掉多余数据 四、拓展 一、问题引入 查询SQL后结果如下,字段分别是用户、项目、批次、工作时间: SELECT UserID,ProjectID,ProBatchesID,WorkHour FROM MAINTABLE GROUP BY HourFiller ,ProjectID ,…

【ESP32接入国产大模型之文心一言】

1. 怎样接入文心一言 随着人工智能技术的不断发展,自然语言处理领域也得到了广泛的关注和应用。在这个领域中,文心一言作为一款强大的自然语言处理工具,具有许多重要的应用价值。本文将重点介绍如何通过ESP32接入国产大模型之文心一言api&am…

图片中src属性绑定不同的路径

vue3 需求是按钮disable的时候,显示灰色的icon;非disable状态,显示白色的icon 一开始src写成三元表达式,发现不行,网上说src不能写成三元表达式,vue会识别成字符串 最后的解决方案 同时,发现…

在Cadence中单独添加或删除器件与修改网络的方法

首先需要在设置中使能 ,添加或修改逻辑选项。 添加或删除器件,点击logic-part,选择需要添加或删除的器件,这里的器件必须是PCB中已经有的器件,Refdes中输入添加或删除的器件标号,点击Add添加。 添加完成后就会显示在R1…

基于springboot智慧食堂管理系统源码和论文

随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化,网络化和电子化。网上管理,它将是直接管理“智慧食堂”系统的最新形式。本论文是以构建“智慧食堂”系统为目标,使用java技术制作&…

odoo17 | 基本视图

前言 我们在上一章中已经看到Odoo能够为给定模型生成默认视图。在实践中,默认视图是绝对不可接受的用于商业应用程序。相反,我们至少应该以逻辑方式组织各种字段。 视图在带有动作和菜单的XML文件中定义。它们是ir.ui.view模型的实例。 在我们的房地产…

OpenHarmony从入门到放弃(一)

OpenHarmony从入门到放弃(二) 一、OpenHarmony的基本概念和特性 OpenHarmony是由开放原子开源基金会孵化及运营的开源项目,其目标是构建一个面向全场景、全连接、全智能的时代的智能终端设备操作系统。 分布式架构 OpenHarmony采用分布式…

Termius for Mac/Win:一款功能强大的终端模拟器、SSH 和 SFTP 客户端软件

随着远程工作和云技术的普及,对于高效安全的远程访问和管理服务器变得至关重要。Termius,一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件,正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案,允许用户通过单一平…

什么是Alibaba Cloud Linux?完全兼容CentOS,详细介绍

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS,Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…

如何修复卡在恢复模式的Android 手机并恢复丢失的数据

Android 系统恢复是一项内置功能,如果您的 Android 设备无法正常工作或触摸屏出现问题,该功能会很有帮助。您可以启动进入恢复模式并使用它来恢复出厂设置您的 Android 设备,而无需访问设置。此外,它还经常用于重新启动系统、从 A…

使用生成式AI查询大型BI表

在拥有大量表格形式数据的组织中,数据分析师的工作是通过提取、转换和围绕数据构建故事来理解这些数据。 分析师访问数据的主要工具是 SQL。 鉴于大型语言模型 (LLM) 令人印象深刻的功能,我们很自然地想知道人工智能是否可以帮助我们将信息需求转化为格式…

复试 || 就业day03(2024.01.03)项目一

文章目录 前言scikit-learn实现简单线性回归scikit-learn实现多元线性回归(二元)总结 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容来自某机构网课,是我为复试准备的第一个项…

基于Vue开发的一个仿京东电商购物平台系统(附源码下载)

电商购物平台项目 项目完整源码下载 基于Vue开发的一个仿京东电商购物平台系统 Build Setup # csdn下载该项目源码压缩包 解压重命名为sangpinghui_project# 进入项目目录 cd sangpinghui_project# 安装依赖 npm install# 建议不要直接使用 cnpm 安装以来,会有各…

知识图谱 vs GPT

简介: 当我们谈论知识图谱时,我们指的是一种结构化的知识表示形式,是一种描述真实世界中事物及其关系的语义模型,用于描述实体之间的关系。它通过将知识组织成图形结构,提供了一种更全面、准确和智能的信息处理方式。知…

每日一题(LeetCode)----二叉树--二叉树的层平均值

每日一题(LeetCode)----二叉树–二叉树的层平均值 1.题目(637. 二叉树的层平均值) 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。 示例 1: 输入:root […

微信小程序开发会务管理系统解决方案

随着移动通讯业务以及信息技术的快速发展,移动端的应用 (APP)的功能越来越多样越来越受欢迎。微信、支付宝以及各大手机品牌开始着手于“小程序”“轻应用”的开发化,在信息技术较为发达、社交软件较为集中的当今社会中,使用微信小程序开发程…

【SpringBoot框架篇】34.使用Spring Retry完成任务的重试

文章目录 简要1.为什么需要重试?2.添加maven依赖3.使用Retryable注解实现重试4.基于RetryTemplate模板实现重试 简要 Spring实现了一套重试机制,功能简单实用。Spring Retry是从Spring Batch独立出来的一个功能,已经广泛应用于Spring Batch,…

python封装接口自动化测试套件 !

在Python中,我们可以使用requests库来实现接口自动化测试,并使用unittest或pytest等测试框架来组织和运行测试套件。以下是一个基本的接口自动化测试套件封装示例: 首先,我们需要安装所需的库: pip install requests …