当前位置:网站首页>MYSQL-InnoDB的线程模型
MYSQL-InnoDB的线程模型
2022-07-30 05:23:00 【三3三】
今天和大家分享InnoDB的线程模型相关知识
在MYSQL中,有很多的线程,主要作用是负责刷新chang buffer、buffer pool、log buffer等内存池中的数据,将磁盘上的数据页加载到内存当中,并且保持磁盘中的数据是最新的状态,另外在内存当中对数据进行修改之后,需要将脏页进行刷盘操作,还有数据库发生异常,需要进行数据回滚操作等等,都是通过后台线程进行处理的,下面就和大家介绍主要的相关线程。

InnoDB线程主要分为四种,分别是Master Thread、IO Thread、Purge Thread、Page Cleaner Thread。
1. IOThread
作用: 主要是用做读写处理
我们可以通过命令show engine innodb status;来查看读写线程的相关状态,执行之后的数据页面如下:
read Thread: 负责读取操作,将数据从磁盘加载到内存中page页中(有4个)
write Thread: 负责写操作,将脏页刷新到磁盘(有4个)
log Thread: 负责将日志缓冲区内容刷新到磁盘(有1个)
insert buffer Thread: 负责将写缓冲区内容刷新到磁盘(有1个)
2. Purge Thread
作用: 用于事务提交之后回收undo页
我们可以通过命令%innodb_purge_threads%;来查看该线程的数量,执行之后的页面如下:
我们可以看到,默认设置的purge thread的数量是4个,这样可以更快的回收undo页。
3. Page Cleaner Thread
作用: 将脏数据刷新到磁盘
我们可以通过命令%innodb_page_cleaners%;来查看该线程的数量,默认是1。
注意: page cleaner thread其实是会调用write thread线程来进行写操作
4. Master Thread
作用: InnoDB的主线程,负责调用其他的线程,优先级最高。
该线程会定时处理数据,每一秒会执行一些操作,每十秒也会执行一些操作,具体执行哪些操作呢?
每一秒的操作:
1.刷新脏页数据到磁盘,根据脏页比例达到75%才操作。我们可以通过命令show variables like 'innodb_max_dirty_pages_pct;'来查看刷新脏页百分比配置,执行命令后的页面如下:
那么达到刷新比例要求,会刷新多少脏页数据到磁盘呢,我们可以通过show innodb_io_capacity;命令查看刷新容量大小:
默认是200
2.合并写缓冲区数据:如果一秒的IO次数小于5,认为IO的压力较小,可以执行合并缓冲区的操作(可能会做)。
3.刷新日志缓冲区:即使事务没有提交,InnoDB也会每秒将重做日志缓冲区的内容刷新到重做日志文件中。(一定会做)
每10秒的操作:
1.刷新脏页数据到磁盘,刷新的脏页数量为innodb_io_capacity(可能会做)
2.合并写缓冲区的数据,合并写缓冲区的大小是innodb_io_capacity的5%(一定会做)
3.刷新日志缓冲区(一定会做)
4.删除无用的undo页(一定会做)
边栏推荐
猜你喜欢
![[Redis Master Cultivation Road] Jedis - the basic use of Jedis](/img/e3/0c6efd03432a01f857796f0bf648ef.png)
[Redis Master Cultivation Road] Jedis - the basic use of Jedis

期末作业C#实现学生宿舍管理系统

WeChat payment and payment callback

给小白的 PG 容器化部署教程(下)

curl (7) Failed connect to localhost8080; Connection refused

Hexagon_V65_Programmers_Reference_Manual (11)

MySQL基础(DDL、DML、DQL)

最新版MySQL 8.0 的下载与安装(详细教程)

Acwing完全数

程序员赚钱实操,手把手教你做付费课程,自媒体,付费文章及付费技术课赚钱
随机推荐
429. N 叉树的层序遍历(两种解法)
【Redis高手修炼之路】Jedis——Jedis的基本使用
DLL description (1)
力扣1047-删除字符串中的所有相邻重复项——栈
ms project2010项目管理软件使用技巧总结
MySQL(3)
idea设置自动带参数的方法注释(有效)
期末作业C#实现学生宿舍管理系统
Kyligence 出席华为全球智慧金融峰会,加速拓展全球市场
C language implements highly secure game archives and reads files
[High Performance Computing] openMP
Unity踩坑记录 —— GetComponent的使用
即刻报名|前沿技术探索:如何让 Spark 更强劲、更灵活
The Golden Circle Rule: Deep Thinking Methods for Successful People
WeChat payment and payment callback
MySql string splitting realizes the split function (field splitting, column switching, row switching)
Golang——从入门到放弃
文档在线化管理系统Confluce使用
【Verilog】HDLBits题解——Circuits/Combinational Logic
How MySQL to prepare SQL pretreatment (solve the query IN SQL pretreatment can only query out the problem of a record)



