我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql脏页指的是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql脏页指的是什么

今天小编给大家分享一下mysql脏页指的是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在mysql中,当内存数据页和磁盘数据页上的内容不一致时,则称这个内存页为脏页。刷脏页的场景:1、当redo log写满,mysql就会暂停所有更新操作,将同步这部分日志对应的脏页同步到磁盘;2、系统内存不足时,需要淘汰一部分数据页,如果淘汰的是脏页,就要先将脏页同步到磁盘;3、MySQL认为系统空闲的时候,有机会就同步内存数据到磁盘,这种没有性能问题。

脏页(内存页)

  • 干净页:内存和磁盘中的数据一致

  • 脏页:内存和磁盘中的数据不一致

为什么会出现 脏页

平时很快的更新操作,都是在写内存和日志。 他并不会马上同步到磁盘数据页,这时内存数据页跟磁盘数据页内容不一致,我们称之为脏页

这里面就涉及 mysql 的内存管理机制

内存管理机制简述

缓冲区中包含这三大类列表。分别为:LRUListFreeListFlushList

在数据库刚启动时,LRUlist中没有数据页。FreeList存放空闲页。

  • 当需要读取某个页时,会从FreeList中获取一个空闲页,读入数据后,放入LRUlist中

  • 如果FreeList中没有空闲页了,那么根据LRU算法淘汰Lru列表中末位的页

  • 当LRUlist中的页被修改后,页就变成了脏页,这个页也会被加入FlushList中

注意:这时这个页既在LRUlist中,又在FlushList中。

总结:LRUList(管理已经被读取的页)和FreeList(管理空闲的页)用来管理页的可用性;FlushList(管理脏页)用来管理脏页的刷新

在脏页数据同步到磁盘过程中,如果对该磁盘数据页执行 SQL 语句。执行速度就会变慢

数据修改和读取只依赖缓冲区行不行

如果数据修改和读取只依赖内存的缓冲区,那么一旦数据库宕机,内存中的数据都会丢失。所以MySQL使用之前讲过的redo log来实现异常重启的数据恢复。

简单来说,就是在更新缓冲区之前,先写入redo log,保证异常重启之后可以正常恢复缓冲区中的数据。

为什么脏页一定要刷新

  • 上面说了 数据只放在缓冲区,会出现数据库宕机,内存数据丢失。所以需要刷新到磁盘。

  • redo log如果无限大或者有许多个文件的话,系统中有大量的修改操作,一旦宕机,恢复的时间也会非常长。

所以自然而然,我们就一定需要把内存中的脏页按照某种规则刷新到磁盘中,有了刷新这个操作,缓冲区的大小问题和redo log的大小问题都可以解决。

  • 缓冲区不需要无限大了,因为可以持久化到磁盘

  • redo log也不需要无限大了,因为一旦持久化到磁盘,redo log中对应的那部分数据就可以释放。

刷脏页有下面4种场景

undefined会造成的影响

如果是 redo log 写满了

要尽量避免redo log 写满。否则整个系统的更新都会停止。此时写的性能变为 0,必须等待该日志对应脏页同步完成后才能更新,这时就会导致 sql 语句 执行的很慢。

以上就是“mysql脏页指的是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql脏页指的是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql脏页指的是什么

今天小编给大家分享一下mysql脏页指的是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在
2023-05-25

mysql脏页是什么

目录脏页(内存页)为什么会出现 脏页内存管理机制简述数据修改和读取只依赖缓冲区行不行为什么脏页一定要刷新刷脏页有下面4种场景会造成的影响脏页(内存页) 干净页:内存和磁盘中的数据一致 脏页:内存和磁盘中的数据不一致 为什么会出现 脏页平时很
2022-05-12

mysql脏页是如何产生的

mysql 中,脏页是指存储在缓冲池中但尚未写入磁盘的数据页。脏页产生于事务更新、写缓冲池以及事务隔离级别、缓冲池大小、写入负载等因素。mysql 通过检查点、后台刷新及脏页刷新优先级等机制管理脏页,在写入性能和数据完整性之间取得平衡。My
mysql脏页是如何产生的
2024-06-15

mysql脏读和幻读的区别是什么

MySQL中的脏读(Dirty Read)是指一个事务在未提交前读取了另一个事务尚未提交的数据。而幻读(Phantom Read)则是指一个事务在执行过程中,由于其他事务的插入或删除操作,导致前后两次查询同一范围的数据行数不一致。主要区别如
2023-08-19

MySQL的Flush-List和脏页的落盘机制

一、回顾 MySQL启动后Buffer Pool会初始化。Buffer Pool也会初始化好N多个空白的缓存页,以及它们的描述数据会被组织成LRU链表以及FreeList 双向链表。 这时你从磁盘中读取一个数据页,会先从Free List中
2022-05-17

mysql指的是什么

这篇文章主要介绍了mysql指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。PHP MySQL 简介:通过 PHP,您可以连接和操作数据库。 MySQL 是跟 PHP
2023-06-15

mysql binlog指的是什么

今天小编给大家分享一下mysql binlog指的是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
2023-04-07

mysql socket指的是什么

这篇“mysql socket指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql socket指的是什么”文
2023-04-07

mysql ft指的是什么

本文小编为大家详细介绍“mysql ft指的是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“mysql ft指的是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。mysql
2023-04-19

mysql innodb指的是什么

这篇文章主要讲解了“mysql innodb指的是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql innodb指的是什么”吧!InnoDB是MyS
2023-05-25

mysql unique指的是什么

这篇“mysql unique指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql unique指的是什么”文
2023-05-25

网页undefined指的是什么意思

小编给大家分享一下网页undefined指的是什么意思,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!网页undefined是指页面出现了未知错误的意思,提示undefined一般是在开发网站的时候定义不正确或是转换不正确,
2023-06-14

mysql分页是什么

mysql 分页是一种技术,用于将查询结果分成较小的页面,从而提高大型数据集的效率。通过使用 limit 和 offset 子句,可以指定返回的行数和跳过的行数,实现分页功能,从而提升性能、改善用户体验,并方便数据管理。什么是 MySQL
mysql分页是什么
2024-08-01

编程热搜

目录