你知道Mysql的架构吗?

news2024/12/23 20:31:10

在这里插入图片描述

msyql分为server曾和存储引擎层

server层包括了连接器(管理连接,权限验证)、查询缓存(命中直接返回结果)、分析器(词法分析,语法分析)、优化器(执行计划生成,索引选择)、执行器(操作引擎,返回结果)等,涵盖了Mysql大多数核心功能,以及所有的内置函数(日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等

存储引擎层负责数据的存储和提取。架构模式是插件式的,支持innoDB、MyISAM、Memory等多个存储引擎。

比如一个语句是

select * from T where id=10;

首先,我们需要建立连接,这个时候是经历连接器,管理连接,权限认证;

第二步是:查询缓存,如果命中直接返回,mysql 8.0取消了此模块(生效频繁)

第三步是: 分析器,进行词法分析和语法分析,识别sql语句中的字符串代表的是什么,然后判断是否符合msyql的语法;

第三步是: 优化器,在表中有多个索引的时候,决定使用哪个索引;或者是在一个语句进行多表(Join)的时候,决定各个表的连接顺序;

第四步是: 执行器,判断有没有对表的执行查询的权限,有权限的话会从第一行寻找ID=10的数据,一直找到;

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

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

相关文章

浪花 - 查询队伍列表

一、接口设计 1. 请求参数:封装 TeamQuery package com.example.usercenter.model.dto;import com.example.usercenter.common.PageRequest; import lombok.Data;/*** author 乐小鑫* version 1.0* Date 2024-01-22-20:14*/ Data public class TeamQuery extends …

使用Unity创建VisionPro应用

1、下载特定Unity版本 Unity账号需要是Pro账号,普通账号不行,目前只支持这1个Unity版本,不要下载任何其它版本:unityhub://2022.3.11f1/d00248457e15) 其它条件:使用Mac电脑M系列芯片,XCode15 Beta2及以上 参考资料: 苹果官网:苹果官网 Unity官网:Unity官网 官方教程…

C#,生成图片的指定尺寸缩略图的源代码

编程的时候经常用到图像的缩略图。 本文发布一个用于生成指定尺寸的缩略图的简单方法。 1 文本格式 private void button1_Click(object sender, EventArgs e) { CreateThumbnail("demo.jpg", "demo_thumb.jpg", 128, 128); } private void CreateTh…

MySQL函数—日期函数

MySQL函数—日期函数 函数功能CURDATE()返回当前日期,只有年月日CURTIME()返回当前时间,只有时分秒NOW()返回当前日期和时间 年月日时分秒YEAR(date)获取指定date的年份MONTH(date)获取指定date的月份DAY(date)获取指定date的日期DATE_ADD(date,INTERVAL…

项目解决方案: 视频融合(实时监控视频和三维建模进行融合)设计方案

目 录 一、需求描述 1、视频接入和控制要求 2、视频播放需求 3、提供其他应用的调用 二、方案设计 (一)系统设计图 (二)产品实现方案 三、产品和功能描述 (一)总体描述 &#xf…

2024问题汇总

2024问题汇总 Linux1.df-h / df -i 命令2.为多网卡Linux云服务器配置策略路由 Windows1.快速进入控制面板 网络连接指令 Linux 1.df-h / df -i 命令 df -h / df -i 都表示查看磁盘空间使用信息 如果遇到磁盘快满的情况,用这两个命令区别如下 df -h 是去删除比较大 …

Java的异常 Exception

从继承关系可知:Throwable 是异常体系的根,它继承自Object 。Throwable 有两个体系: Error 和Exception. Error表示严重的错误,程序对此一般无能为力,例如: OutOfMemoryError :内存耗尽NoClassDefFoundError :无法加载某个ClassStackOverflowError :虚…

web安全学习笔记【05】——反弹Shell、正反向连接

思维导图 #知识点: 1、Web常规-系统&中间件&数据库&源码等 2、Web其他-前后端&软件&Docker&分配站等 3、Web拓展-CDN&WAF&OSS&反向&负载均衡等 ----------------------------------- 1、APP架构-封装&原生态&H5&am…

软件安全测试的重要性简析,专业安全测试报告如何申请?

在当今数字化时代,软件在我们的日常生活中扮演着至关重要的角色,但也带来了各种潜在的安全威胁。为了保障用户的信息安全和维护软件的可靠性,软件安全测试显得尤为重要。 软件安全测试是指通过一系列的方法和技术,对软件系统中的…

BACnet转Modbus协议转换网关BA111

随着通讯技术和控制技术的发展,为了实现楼宇的高效、智能化管理,集中监控管理已成为楼宇智能管理发展的必然趋势。在此背景下,高性能的楼宇暖通数据传输解决方案——协议转换网关应运而生,广泛应用于楼宇自控和暖通空调系统应用中…

Webpack5 基本使用 - 2

常用 loader loader 是辅助打包工具。webpack 默认只能打包 js 文件,打包其它模块就需要配置 loader 来告诉 webpack 该怎么去打包其它文件。loader 可以将文件从不同的语言转换为 JavaScript。一类文件如果需要多个 loader 处理,loader 的执行顺序是从…

数据采集与预处理01: 项目1 数据采集与预处理准备

数据采集与预处理01: 项目1 数据采集与预处理准备 任务1 认识数据采集技术,熟悉数据采集平台 数据采集:足够的数据量是企业大数据战略建设的基础,因此数据采集成为大数据分析的前站。数据采集是大数据价值挖掘中重要的一环&#…

《WebKit 技术内幕》学习之十二(2):安全机制

2 沙箱模型 2.1 原理 一般而言,对于网络上的网页中的JavaScript代码和插件是不受信的(除非是经过认证的网站),特别是一些故意设计侵入浏览器运行的主机代码更是非常危险,通过一些手段或者浏览器中的漏洞&#xff0c…

在SpringBoot中基于CanvasLabel的地震基础信息展示实践

目录 前言 一、数据库设计 1、数据库设计 2、sql脚本 3、数据记录 二、SpringBoot后台设计与实现 1、Mapper访问层及实体定义 2、Service层实现 3、控制层实现 三、地震信息展示 1、展示数据接入 2、最终效果 总结 前言 在上一篇博客中,对于在Leafle…

自然语言处理--基于HMM+维特比算法的词性标注

自然语言处理作业2--基于HMM维特比算法的词性标注 一、理论描述 词性标注是一种自然语言处理技术,用于识别文本中每个词的词性,例如名词、动词、形容词等; 词性标注也被称为语法标注或词类消疑,是语料库语言学中将语料库内单词…

mockjs使用(2)

mockjs使用(1) 4、Mock 4.1 Mock.mock() 根据数据模版生成模拟数据 Mock.mock( rurl?, rtype?, template|function(options) )问号代表该参数不必填 4.1.1 各参数及其默认值 rurl: 不必填。表示需要拦截的URL,可以使URL字符串或URL正…

解决方案 | 基于SFTP协议的文件传输断点续传Java实现方案

背景 因项目需要,我们服务每天都需要通过SFTP协议来对接上下游进行文件传输,但是对于一些大文件,在与第三方公司的服务器对接过程中很可能会因为网络问题或上下游服务器性能问题导致文件上传或者下载被中断,每次重试都需要重新对…

【Python进阶编程】python编程高手常用的设计模式(持续更新中)

Python编程高手通常熟练运用各种设计模式,这些设计模式有助于提高代码的可维护性、可扩展性和重用性。 以下是一些Python编程高手常用的设计模式: 1.单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供全局…

PLC协议转BACnet网关BA107

随着通讯技术和控制技术的发展,为了实现楼宇的高效、智能化管理,集中监控管理已成为楼宇智能管理发展的必然趋势。在此背景下,高性能的楼宇暖通数据传输解决方案——协议转换网关应运而生,广泛应用于楼宇自控和暖通空调系统应用中…

静态分析C语言生成函数调用关系的利器——cflow(二)

大纲 环境准备选择项目分析代码简单分析高级分析坑:不能显示main函数所有调用函数的调用栈坑2:重定义错误坑3:缺失编译时产生的文件坑4:缺失工程的头文件包含路径指定坑5:操作系统的坑只存在于windows操作系统上的文件…