day2 -- MySQL内部模块

news/2024/11/8 21:28:01/

学习目标

我希望了解一下Mysql的工作原理,实现这个工作原理的各个模块是如何协同工作的。


学习内容

  • 服务端与客户端
  • 服务端与客户端如何通信
  • 存储引擎
  • 存储结构

具体细节

  • 这里先放上Mysql可视化结构,来自B站
    在这里插入图片描述

  • 服务端
    服务端也就是我们常说的Mysql,关系型资料库管理系统。Mysql在后台帮我们组织和管理数据,向我们提供服务。

  • 客户端
    客户端也就是“程序员”用于管理、可视化、开发服务端的工具,像Mysql workbench。
    在这里插入图片描述

  • 如何与服务端通信的
    客户端连接驱动诸如 ODBC JODBC连接驱动可以和Mysql的连接模块进行连接和通讯。
    连接模块后来演变成了连接池,因为连接池是对外连接的唯一模块,参数配置很重要。

    连接驱动和连接池建立连接后,SQl语句从客户端发往服务端, ==> 然后被SQL接口和SQL解析器接受和解析, ==>命令成功解析后再被转送给SQL语句优化器,优化器优化任务语句, ⇒ 优化后的SQL语句会被送给存储引擎比如InnoDB执行增删改查动作。

  • 存储引擎
    在这里插入图片描述
    写入: 第一步:存储引擎调用执行器将旧值写道 磁盘的 undo log区用于支持回滚
    第二步:将内存中的数值插入buffer pool
    第三步:数值通过IO线程写入磁盘
    其实这个步骤很复杂,远远不止上面写步骤,仅作为了解到此为止。

    查询:第一步客户端发送SQL指令
    第二步:指令通过连接池发送给SQL接口,被SQL解析器解析
    第三步:解析器把解析结果丢给预处理器+优化器
    第四步:最终的SQL语句被执行器接受
    第五步:执行器调用存储引擎拿数据
    第六步:拿到数据的执行器将数据通过连接池返回给客户端
    在这里插入图片描述

  • 存储结构
    建立新表是指定的存储引擎不同可能存在着存储结构的不一样。
    大致思路可以参考文件系统的管理方式。
    一般就是建表会生成一个独立表空间,可以想象为一块独立的磁盘,这个磁盘的基本构成单元称为页,大小16KB,多个页组成区,多个区组成 组,然后多个组形成表空间。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/99776.html

相关文章

JMeter性能测试101:一步一步教你如何开始

1. Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。 2023年最新版Jmeter性能测试项目实战…

(详解)Vue3自定义指令

目录 一、背景 二、提前预习(必看) 2.1自定义指令生命周期 2.2 生命周期四个参数 三、 自定义指令 3.1私有自定义指令 3.1.1定义指令 3.1.2使用自定义指令 3.2全局自定义指令 3.2.1定义指令 3.2.2使用自定义指令 一、背景 在我们日常开发中&…

【如何在Java中使用ForkJoinPool】

目录 背景1.使用ForkJoinPool的线程池2.工作窃取算法3.ForkJoinPool的主要类4.使用递归操作5.资源任务6.何时使用ForkJoinPool7.总结 背景 使用ForkJoinPool去分解计算密集型任务且且并行地执行他们以获得更好的Java应用程序的性能。 ForkJoinPool是一个功能强大的Java类&…

漏洞复现 log4j RCE(CVE-2021-44228)

前言:Log4j的利用条件实在是苛刻,看了很多视频和文章,记录下我能复现的两种场景 Windows系统不知啥原因,搞了许久毫无反应,只能控制台打印。360都检测出了Log4j,但是即使退出360,也没有任何命令…

智能计价器-第14届蓝桥杯省赛Scratch中级组真题第5题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第140讲。 智能计价器,本题是2023年5月7日举行的第14届蓝桥杯省赛Scratch图形化编程中级组真题第5题&#…

LeetCode高频算法刷题记录10

文章目录 1. 旋转图像【中等】1.1 题目描述1.2 解题思路1.3 代码实现 2. 组合总和【中等】2.1 题目描述2.2 解题思路2.3 代码实现 3. 回文链表【简单】3.1 题目描述3.2 解题思路3.3 代码实现 4. 字符串解码【中等】4.1 题目描述4.2 解题思路4.3 代码实现 5. 多数元素【简单】5.…

魔法反射--java反射进阶(实战篇)

👳我亲爱的各位大佬们好😘😘😘 ♨️本篇文章记录的为 魔法反射–java反射进阶(实战篇) 相关内容,适合在学Java的小白,帮助新手快速上手,也适合复习中,面试中的大佬🙉🙉🙉…

【Go语言从入门到实战】并发篇

Go语言从入门到实战 — 并发篇 协程 Thread vs Groutine 相比之下,协程的栈大小就小很多了,创建起来也会更快,也更节省系统资源。 一个 goroutine 的栈,和操作系统线程一样,会保存其活跃或挂起的函数调用的本地变量…