Mysql后台线程

多线程访问mysql数据库 主要分为3部分: 1.DBSqlMan是多线程访问mysql的动态库 2.mysql5,开源的windows下使用的mysql2次开发库,mysql官网上可以下载 3.testDb,简单的应用DBSqlMan的例子 整个工程已经在VS2005下运行通过,并在实际应用中使用过。提供了mysql访问效率 简单讲解下CMySQLMan类的对外接口: SetMaxConnectNum------设置mysql最大的连接数?,当调用ConnectDB的时候会创建X个数据库连接 SetCharset------设置编码格式,主要是GB2312还是UTF8 ConnectDB------连接数据库 GetIdleMySql------获取一个未使用的mysql连接 ReleaseMysql------释放一个在使用的mysql连接 SelectRecordbySP/SelectRecord------都是执行一个sql语句,返回一个结果集(主要用于查询) FreeRecord------释放结果集 ExecSP/ExecSQL------都是执行一个sql语句(主要用于插入,删除) 其他接口主要是后续扩展的,比如获取表字段,对表进行加减锁,获取计算机信息等,不是核心的接口,不做解释 立即下载

在InnoDB的后台线程中,分为4类,分别是:Master Thread 、IO Thread、Purge Thread、Page Cleaner Thread。

Master Thread

核心后台线程,负责调度其他线程,还负责将缓冲池中的数据异步刷新到磁盘中, 保持数据的一致性,还包括脏页的刷新、合并插入缓存、undo页的回收 。

Master thread内部有两个主要处理时机,分别是每隔1秒和10秒处理。

  • 每隔1秒的操作
    • 重做日志缓冲刷新到磁盘redo log文件,即使该事务还没提交。这也解释了为什么再大的事务commit的时间也是很快的。
    • InnoDB引擎会判断当前一秒的IO次数,如果小于5次,则认为当前IO压力很小,就会执行合并插入缓冲的操作。
    • InnoDB会判断当前缓冲池中脏页的比例是否超过了配置文件的参数(默认90,代表90%),如果超过这个阈值,则会将至多100个脏页写入磁盘。
    • 如果当前用户没有活动,则切换到background loop。
  • 每隔10秒的操作
    • InnoDB会判断过去10秒之内的磁盘IO操作是否小于200次,如果是则认为当前有足够的磁盘IO能力,因此将100个脏页刷新到磁盘。
    • 合并至多5个插入缓冲。
    • 将日志缓冲刷新到磁盘。
    • 执行full purge操作,删除无用的undo页。事实上在对MySQL表执行update、delete操作时,原先的行被标记为删除,但是由于一致性读的关系,需要保留这些行版本的信息。在full purge的过程中,InnoDB会判断当前事务系统已被删除的行是否可以删除(比如有时候可能还有查询操作需要读取之前的版本的undo信息),如果可以,InnoDB会立即将其删除。
    • 刷新100个(脏页的比例大于70%)或10个(脏页的比例小于70%)脏页到磁盘。
    • 产生一个检查点(checkpoint)。将最老日志序列号(oldest LSN)的页写入磁盘。
  • IO Thread

  • 在InnoDB存储引擎中大量使用了AIO来处理IO请求, 这样可以极大地提高数据库的性能,而IOThread主要负责这些IO请求的回调。
    线程类型默认个数职责
    Read thread4负责读操作
    Write thread4负责写操作
    Log thread1负责将日志缓冲区刷新到磁盘
    Insert buffer thread1负责将写缓冲区内容刷新到磁盘

Purge Thread

主要用于回收事务已经提交了的undo log,在事务提交之后,undo log可能不用了,就用它来回收。默认是由master thread中完成。为了减轻master thread的工作,提高cpu使用率可以通过配置参数innodb_purge_thread=1启动独立线程。

Page Cleaner Threa

协助 Master Thread 刷新脏页到磁盘的线程,它可以减轻 Master Thread 的工作压力,减少阻塞。

DIKW模型实战:用Obsidian打造个人知识库的5个关键步骤 本文详细介绍了如何利用DIKW模型在Obsidian中构建高效个人知识库的5个关键步骤,从数据收集到智慧应用的全流程实践。通过标记系统、信息加工引擎和知识结晶方法,帮助知识工作者实现从原始数据到决策智慧的认知跃迁,提升个人知识管理效率。 阅读详情

相关推荐

手把手教你接入京东购物小程序:从领券到下单的全流程解析

本文详细解析了如何从API申请到领券下单,手把手教你接入京东购物小程序的全流程。涵盖京东联盟账号注册、商品信息获取、优惠券链接转换等关键技术实践,帮助开发者高效实现电商功能集成,提升用户购物体验。

g5h6i的博客 908

MySql后台线程讲解

一、Master Thread Master Thread具备最高的线程优先级。其内部有 主循环(loop) 后台循环(backgroup loop) 刷新循环(flush loop) 暂停循环(suspend loop) 多个循环(loop)组成。Master Thread会根据数据库的状态在这些循环之间切换。Loop被称为主循环,因为大多数的操作都是在这个循环中,其中有两大部分的操作:每秒钟的操作和每10秒的操作 每秒钟的操作包含以下内容: 重做日志缓冲刷新到磁盘,即使这个事务还没有提交(总是)

weixin_68009402的博客 789

onnx入门教程(一):解决模型部署中的难题

直接使用 PyTorch 模型的话,我们修改几行代码就能实现模型输入的动态化。但在模型部署中,我们要花数倍的时间来设法解决这一问题。现在,让我们顺着解决问题的思路,体验一下模型部署的困难,并学习使用自定义算子的方式,解决超分辨率模型的动态化问题。刚刚的报错是因为 PyTorch 模型在导出到 ONNX 模型时,模型的输入参数的类型必须全部是 torch.Tensor。而实际上我们传入的第二个参数" 3 "是一个整形变量。这不符合 PyTorch 转 ONNX 的规定。我们必须要修改一下原来的模型的输入。

图像学习之旅 1127

MySQL-innodb后台线程

在InnoDB中大量使用了AIO(Async IO)来处理写IO请求,这样可以极大提高数据库的性能。而IO Thread的工作主要负责这些IO请求的回调(call back)处理。而其目的是为了减轻原Master Thread的工作及对于用户查询线程的阻塞,进一步提高InnoDB存储引擎的性能。事务被提交后,其所使用的undo log可能不再需要,因此需要Purge Thread来回收已经使用并分配的undo页。InnoDB是多线程的模型,因此其后台有多个不同的后台线程,负责处理不同的任务。

睡不醒的每天 622

Vmware虚拟机一打开就蓝屏解决方法

Vmware虚拟机一打开就蓝屏解决方法 问题: 一打开Vmware虚拟机就蓝屏,如下图所示: 解决方法1: 启用和关闭windows功能(对话框)——>虚拟机平台(选项打对勾,默认没勾选)——>确定后重启——>再进应该就好了。 解决方法2: ①.查看电脑中的Hyper-V服务是否关闭 1.打开控制面板-程序-程序和功能 2.双击启用或关闭Windows功能 3.把Hyper-V前面的勾去掉 如果后期发下没有反应,或者电脑本身Hyper-V的服务没有打开,可以先打开在关闭,试

m0_55901666的博客 26万+

K8S部署Java项目(Gitlab CI/CD自动化部署终极版)

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 6954

mysql线程详解_mysql后台线程详解

1.mysql后台线程mysql后台线程主要用于维持服务器的正常运行和完成用户提交的任务,主要包括:masterthread,read thread,write thread,redo log thread,change bufferthread,page cleaner thread,purge thread,checkpoint,error monitorthread,lock monitor...

weixin_33282146的博客 889

YOLOv8改进策略【YOLO和Mamba】| 2024 VM-UNet,高效的特征提取模块VSS block 二次创新提高精度

VM-UNet模型设计的出发点是解决现有CNN-based和模型在医学图像分割中的局限性,利用(SSMs)的优势,提出一种更有效的医学图像分割模型。具体来说,CNN-based模型在捕捉长距离信息方面存在不足,而模型由于自注意力机制的二次复杂度导致计算负担较重。SSMs模型如Mamba不仅在建模长距离依赖方面表现出色,还具有线性计算复杂度,这为VM-UNet的设计提供了理论基础。

Limiiiing的博客 616

一文带你了解MySQL之后台线程

MySQL的服务实现通过后台多个线程、内存池、文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务。

Multis 1174

YOLOv11改进 - 卷积Conv | PATConv(Partial Attention Convolution)部分注意力卷积,在减少计算量的同时融合卷积与注意力的优势 | AAAI 2026

本文提出部分注意力卷积(PATConv)机制,并将其集成到YOLOv11中。传统神经网络中,卷积计算密集,注意力机制全局计算冗余,此前的“部分卷积”会丢失未计算通道的特征价值。PATConv通过“通道拆分 - 并行处理 - 结果拼接”的逻辑,给不同通道分配“擅长的任务”,兼顾局部与全局特征。基于此,它还衍生出PAT_ch、PAT_sp和PAT_sf三种细分模块。此外,还提出了动态部分卷积(DPConv),并构建了新的混合网络家族PartialNet。我们将PATConv代码集成到YOLOv11中,实验表明,

魔改工程师的博客 1085

利用 SAP Joule 提升 ABAP 开发效率的前提条件与限制全解析

综上,想要在 ABAP Development Tools 中顺利使用 SAP Joule,既要准备好 BTP、IAS、ABAP 系统与 ADT 的版本与信任链,也要理解许可证、配额、语法范围等限制。只有在这些前提全部满足后,Joule 才能真正发挥生成式 AI 的价值,帮助 ABAP 开发者从繁琐模板中解放出来,把注意力投入在业务创新与 Clean Core 改造之上。未来 SAP 还将扩展中文语境、自动修复建议以及跨系统智能代理等功能,值得持续关注。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 661

MySQL技术内幕-InnoDB存储引擎-第二章、InnoDB存储引擎

文章目录InnoDB存储引擎一、InnoDB存储引擎概述二、InnoDB存储引擎的版本三、InnoDB体系架构1、后台线程Master Thread(主要负责将缓存池数据刷新到磁盘)IO Thread(主要负责写IO请求的回调处理) InnoDB存储引擎 InnoDB是事务安全的MySQL存储引擎,通常来说,它是OLTP(Online Transactional Processing,联机事务处理)应用中核心表的首选存储引擎。 一、InnoDB存储引擎概述 从MySQL5.5版本开始,InnoDB开始是默认

weixin_38367817的博客 1277

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL 后台线程

MySQL实例由一组后台线程、一些内存块和若干服务线程组成。 在一般情况下,MySQL有7组后台线程,分别是一个主线程,4组IO线程,1个锁线程和一个错误监控线程。MySQL5.5之后又新增了一个purge线程,主要功能如下: master thread:主要负责将脏缓存页刷新到数据文件,执行purge操作,触发检查点,合并插入缓冲区等。 insert buffer thread:负责插入缓冲区...

weixin_45019914的博客 928

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mysql后台线程_MySQL后台线程整理总结

本文整理自《MySQL技术内幕 InnoDB存储引擎》MySQL通过后台各种线程、内存池、文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务。以下简单总结MySQL的一些后台线程以及主要作用,以及innodb引擎的变化升级情况。整体上看,MySQL的后台线程概括如下,分为master thread,IO thread,purge thread,page ...

weixin_34530164的博客 248

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mysql后台线程_MySQL中的后台线程

MySQL5.7有以下9组后台线程:分别为1个主线程,4组IO线程,1个锁线程,1个错误线程,1个purge线程,1个page cleaner线程。master thread : 主要负责将脏缓存页刷新到数据文件中,执行purge操作,触发检查点,合并插入缓冲区等。insert buffer thread : 主要负责插入缓冲区的合并操作。read thread : 负责数据库的读取操作,可配置多...

weixin_36488760的博客 337

mysql后台线程_mysql后台线程详解

1.mysql后台线程mysqlmysql后台线程主要用于维持服务器的正常运行和完成用户提交的任务,主要包括:master thread,read thread,write thread,redo log thread,change buffer thread,page cleaner thread,purge thread,checkpoint,error monitor thread,lock...

weixin_30074929的博客 496

mysql后台线程详解

1.mysql后台线程简介 mysql后台线程主要用于维持服务器的正常运行和完成用户提交的任务,主要包括:master thread,read thread,write thread,redo log thread,change buffer thread,page cleaner thread,purge thread,checkpoint,error monitor thread,lock m...

数据库生态圈(RDB & NoSQL & Bigdata)——专注于关系库应用与研究(Oracle & Mysql & Postgresql & SQL Server ) 766

mysql后台线程_MySQL学习笔记-数据库后台线程

数据库后台线程默认情况下讲述的InnoDB存储引擎,以后不再重复声明。后台线程有7个——4个IO thread,1个master thread,1个锁监控线程,1个错误监控线程。IO thread的数量由配置文件中的innodb_file_io_threads参数控制,默认为4。4个IO线程分别是insert buffer thread、log thread、read thread、write t...

weixin_42114580的博客 294

mysql mgr清空线程_MySQL后台线程的清理工作

后台清理工作:脏页刷盘、undo回收1、page cleaner thread:刷新脏页2、purge thread:清空undo页、清理“deleted”page一、innodb_page_cleanerspage cleaner线程从buffer pool中刷脏页的线程数量。1、5.7新特性1、5.6版本以前,脏页的清理工作交由master线程的;2、Page cleaner thread是5...

weixin_39628160的博客 216

常见mysql后台线程

1.IO THREAD MySQL有很多后台线程 其中包括了负责IO的相关线程IO THREAD 1.参数innodb_write_io_threads 写线程 默认四个,负责数据块的写入 2.参数innodb_read_io_threads读线程 默认四个,负责数据块的读取 上面两个参数高并发下,可以设置为8. 2.Purge th...

weixin_34375233的博客 170

mysql多线程删除_MySQL后台线程的清理工作

后台清理工作:脏页刷盘、undo回收1、page cleaner thread:刷新脏页2、purge thread:清空undo页、清理“deleted”page一、innodb_page_cleanerspage cleaner线程从buffer pool中刷脏页的线程数量。1、5.7新特性1、5.6版本以前,脏页的清理工作交由master线程的;2、Page cleaner thread是5...

weixin_39633054的博客 629

mysql进程线程_MySQL后台线程整理总结

本文整理自《MySQL技术内幕 InnoDB存储引擎》MySQL的服务实现通过后台多个线程、内存池、文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务。以下简单总结MySQL的一些后台线程以及主要作用,以及innodb引擎的变化升级情况。整体上看,MySQL的后台线程概括如下,分为master thread,IO thread,purge thread,...

weixin_32955207的博客 417

MySQL后台线程,知识体系一共包含哪些部分?底层原理是什么?

MySQL 后台线程(Background Threads)是 MySQL 数据库运行时的核心组成部分,负责处理各种后台任务,如日志写入、数据刷新、事务管理等。这些线程在数据库的性能优化、高并发支持和崩溃恢复中起着至关重要的作用。 监控线程活动: 使用性能模式(Performance Schema)或工具(如 )查看线程的详细信息。 二、底层原理 1. 线程模型 多线程架构: MySQL 使用多线程模型来实现并发处理,每个连接由一个独立的线程处理。 后台线程则是专门用于执行后台任务的线程。

长风破浪会有时的博客 1145

mysql innodbpurgethreads_MySQL后台线程的清理工作

后台清理工作:脏页刷盘、undo回收1、page cleaner thread:刷新脏页2、purge thread:清空undo页、清理“deleted”page一、innodb_page_cleanerspage cleaner线程从buffer pool中刷脏页的线程数量。1、5.7新特性1、5.6版本以前,脏页的清理工作交由master线程的;2、Page cleaner thread是5...

weixin_32578799的博客 1003
上一篇: InnoDB磁盘架构
下一篇: SQL执行原理
geek-wmy
博客等级 码龄9年 322粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值