mysql的整体架构

服务层-引擎层-硬盘层
一条语句执行的整体过程:
先建立连接(mysql -h -p 密码)–预处理-词法分析-语法分析-优化器选择用什么索引表如何连接等-执行器
到这里都是属于server层,大多数功能包括视图,存储过程,触发器都是这里实现的(索引不是)

接下来执行器就会调用引擎层接口,引擎负责和文件具体交互,存取数据。下面的引擎层具体结构(innodb为例)
在这里插入图片描述
主体是内存池和后台线程

先说内存池。
缓冲池、redo_log缓冲、额外缓冲组成。
缓冲池存在意义是弥补IO和CPU速度不匹配问题。数据库读取页时,首先去缓冲池中查找该页是否存在,若不存在再去磁盘查找是否存在,若存在则将页放在缓冲池中,以便下次查找时,可以直接取出来。数据库修改页时,首先修改缓冲池中的页,然后再以一定的频率刷新到磁盘中。并不是每次修改都去修改磁盘,那样的话性能还是很低,而是通过一种称为Checkpoint的机制将数据刷新回磁盘。

relog缓冲:为了实现数据持久化,避免宕机数据丢失,先写到缓冲中,由innodb负责写到文件中。
而且是循环写的这个,两个文件循环写会覆盖,所以不适合全库备份(binlog可以)

额外的:堆数据结构分配的,在对一些数据结构本身的内存进行分配时,需要从额外的内存池中进行申请,当该区域的内存不够时,会从缓冲池中申请。

后台线程
主线程:主线程负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲等等。合并插入缓冲是如果IO压力小,就先把索引放到缓存池,合并若干再刷新。
IO线程:负责读写请求处理
undo回收线程: 事务完成undolog就可以回收了。
脏页清除线程:减轻主线程脏页的刷新操作。

再往下就是具体的文件操作了。

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

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

相关文章

机器学习笔记之优化算法(一)无约束优化概述

机器学习笔记之优化算法——无约束优化概述 引言回顾:关于支持向量机的凸二次优化问题无约束优化问题概述解析解与数值解数值解的单调性关于优化问题的策略线搜索方法信赖域方法 引言 从本节开始,将介绍优化算法 ( Optimization Algorithm ) (\text{Opt…

用DBeaver进行数据备份与恢复

一、数据备份 1、选择需要备份的数据库或数据表,鼠标右击。 2、选择“工具-转存数据库” 3、勾选需要导出备份的数据库和数据表 可自行设置,这里直接点击开始; 导出完成 二、数据恢复 1、选择需要恢复的数据库或数据表,鼠标右…

Ubuntu下安装Node.js;npm

Ubuntu下安装Node.js curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install -y nodejs Ubuntu下安装npm sudo apt-get install npm Ubuntu下指定版本升级npm sudo npm install npm8.15.0 -g Ubuntu下升级node 安装n模块:s…

台灯头灯手电筒UL153亚马逊美国站测试要求

在将台灯、头灯或手电筒上架到亚马逊美国站之前,UL153测试是必不可少的一项认证。UL153是美国安全实验室(Underwriters Laboratories)颁布的一项标准,旨在确保产品的安全性和可靠性。那么,我们应该如何办理UL153测试报…

锌离子荧光探针TSQ,109628-27-5,具有很好的选择性荧光探针

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----外观以及性质: 锌离子荧光探针TSQ(CAS号:109628-27-5),锌离子荧光探针TSQ是用于检测锌离子的荧光探针。 TSQ与Zn离子结合后,吸收波长和发射波…

无显示器设置家庭服务器树莓派4B,开启SSH,VNC,WIFI,配置内网穿透

前言 没有显示器对树莓派配置稍微有些繁琐,写一篇博客记录。 配置网络 以下都是在烧录好的sd卡根目录操作 创建一个ssh名字的空文件创建Wi-Fi配置,文件名称:wpa_supplicant.conf,内容: countryCN ctrl_interfaceDI…

【家庭公网IPv6】

家庭公网IPv6 这里有两个网站: 1、 IPV6版、多地Tcping、禁Ping版、tcp协议、tcping、端口延迟测试,在本机搭建好服务器后,可以用这个测试外网是否可以访问本机; 2、 IP查询ipw.cn,这个可以查询本机的网络是否IPv6访问…

QT--day2(信号与槽,多界面跳转)

第一个界面头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QIcon> //图标头文件 #include <QPushButton> //按钮类头文件QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public…

ChatGPT爆火的时代,人工智能和网络安全选哪个好?

我觉得网络安全会更好点 其实看了很多说法&#xff0c;感觉都是不成熟或者夹带私货的&#xff0c;我自己本科信息安全&#xff0c;目前在一家甲方做企业红军。 你如果选择人工智能&#xff0c;敢问你的学历怎么样&#xff1f;本科是否是985/211&#xff1f;自己是否有读研的打…

Flutter系列文章-Flutter进阶

在前两篇文章中&#xff0c;我们已经了解了Flutter的基础知识&#xff0c;包括Flutter的设计理念、框架结构、Widget系统、基础Widgets以及布局。在本文中&#xff0c;我们将进一步探讨Flutter的高级主题&#xff0c;包括处理用户交互、创建动画、访问网络数据等等。为了更好地…

【HarmonyOS】ArkTS 组件内转场动画,动画播放时颜色异常问题

【关键字】 HarmonyOS、ArkTS、组件内转场动画、颜色异常 【问题描述】 根据组件内转场动画文档中示例编写代码&#xff0c;使用动画转场组件button&#xff0c;并给button设置背景色让button透明度为0&#xff0c;实现动画转场时&#xff0c;会先出现默认蓝色button&#xf…

字节8年经验之谈 —— 如何从0开始做自动化测试?

自动化测试是使用软件工具在应用程序上自动运行测试的过程&#xff0c;无需任何人为干预。这可以通过减少手动测试的需要来保存时间并提高软件开发过程的效率。由于人为错误或不一致性&#xff0c;手动测试可能容易出错&#xff0c;这可能导致错误未被检测到。自动化测试通过提…

本土机器视觉创业企业涌现,深眸科技携手AI+3D视觉勇闯小场景赛道

随着工业自动化技术向智能化方向发展&#xff0c;人工智能实现快速落地&#xff0c;机器视觉应用产品在算力、算法和技术等方面得到持续升级&#xff0c;助力中国机器视觉行业进入高质量发展阶段。 在制造业转型升级、新兴产业发展的过程中&#xff0c;中国作为全球制造中心之…

Git分布式版本控制工具和GitHub(一)--简介

一.Git概述 1.Git简介 【1】什么是Git? Git就是代码版本管理工具。 【2】为什么要使用Git &#xff08;1&#xff09;版本控制 写代码就是不断写BUG的过程&#xff08;当然我们是不会这么说的&#xff09;&#xff0c;很多时候你写了100行代码之后&#xff0c;突然醒悟&…

ShareSDK 国内平台登陆返回参数

第三方登陆平台/返回参数用户信息 user.rawData授权信息 [user.credential rawData]微信cityaccess_tokencountryexpires_inheadimgurlopenidlanguagerefresh_tokennicknamescopeopenidunionidprivilegeprovincesexunionidQQcityaccess_tokenconstellationexpires_infigureurl…

SQL-每日一题【627. 变更性别】

题目 Salary 表&#xff1a; 请你编写一个 SQL 查询来交换所有的 f 和 m &#xff08;即&#xff0c;将所有 f 变为 m &#xff0c;反之亦然&#xff09;&#xff0c;仅使用 单个 update 语句 &#xff0c;且不产生中间临时表。 注意&#xff0c;你必须仅使用一条 update 语句…

微信小程序数字键盘(仿微信转账键盘)

微信小程序input自带数字输入键盘&#xff0c;不过是直接调用的系统键盘&#xff0c;无法个性化。 代码中使用使用了Vant WeappVant UI小程序版&#xff0c;这里就不介绍相关安装说明了&#xff0c;大家自行安装Vant Weapp。 json 用到的组件 {"usingComponents": …

职工管理系统C++

1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C来实现一个基于多态的职工管理系统 公司中职工分为三类&#xff1a;普通员工、经理、老板&#xff0c;显示信息时&#xff0c;需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责…

提高电脑寿命的维护技巧与方法分享

在维护电脑运行方面&#xff0c;我有一些自己觉得非常有用的技巧和方法。下面我将分享一些我常用的维护技巧&#xff0c;并解释为什么我会选择这样做以及这样做的好处。 首先&#xff0c;我经常清理我的电脑内部的灰尘。电脑内部的灰尘会影响散热效果&#xff0c;导致电脑发热…

【计算机视觉中的 GAN 】 - 条件图像合成和 3D 对象生成(2)

一、说明 上文 【计算机视觉中的 GAN 】或多或少是GANs&#xff0c;生成学习和计算机视觉的介绍。我们达到了在 128x128 图像中生成可区分图像特征的程度。但是&#xff0c;如果你真的想了解GAN在计算机视觉方面的进展&#xff0c;你肯定必须深入研究图像到图像的翻译。…