mysql脏页是什么
时间:2023-04-15 06:52
在mysql中,当内存数据页和磁盘数据页上的内容不一致时,则称这个内存页为脏页。刷脏页的场景:1、当redo log写满,mysql就会暂停所有更新操作,将同步这部分日志对应的脏页同步到磁盘;2、系统内存不足时,需要淘汰一部分数据页,如果淘汰的是脏页,就要先将脏页同步到磁盘;3、MySQL认为系统空闲的时候,有机会就同步内存数据到磁盘,这种没有性能问题。 本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。 平时很快的更新操作,都是在写内存和日志。他并 这里面就涉及 mysql 的内存管理机制 缓冲区中包含这三大类列表。分别为: 在数据库刚启动时,LRUlist中 注意:这时这个页既在LRUlist中,又在FlushList中。 总结:LRUList(管理已经被读取的页)和FreeList(管理空闲的页)用来管理页的可用性;FlushList(管理脏页)用来管理脏页的刷新 在脏页数据同步到磁盘过程中,如果对该磁盘数据页执行 SQL 语句。执行速度就会变慢 如果数据修改和读取只依赖内存的缓冲区,那么一旦数据库宕机,内存中的数据都会丢失。所以MySQL使用之前讲过的redo log来实现异常重启的数据恢复。 简单来说,就是在更新缓冲区之前,先写入redo log,保证异常重启之后可以正常恢复缓冲区中的数据。 所以自然而然,我们就一定需要把内存中的脏页按照某种规则刷新到磁盘中,有了刷新这个操作,缓冲区的大小问题和redo log的大小问题都可以解决。 当 系统 MySQL 认为系统 如果是 redo log 写满了 要尽量避免 【相关推荐:mysql视频教程】 以上就是mysql脏页是什么的详细内容,更多请关注Gxl网其它相关文章!脏页(内存页)
为什么会出现 脏页
不会马上同步
到磁盘数据页,这时内存数据页跟磁盘数据页内容不一致,我们称之为脏页
。内存管理机制简述
LRUList
、FreeList
、FlushList
。没有数据页
。FreeList存放空闲页。数据修改和读取只依赖缓冲区行不行
为什么脏页一定要刷新
数据库宕机,内存数据丢失
。所以需要刷新到磁盘。刷脏页有下面4种场景
redo log 写满
,mysql就会暂停所有更新
操作,将同步这部分日志对应的脏页同步到磁盘
。内存不足
时,需要淘汰
一部分数据页,如果淘汰的是脏页
,就要先将脏页同步到磁盘
。空闲
的时候,有机会就同步
内存数据到磁盘,这种没有性能问题。MySQL 正常关闭
,MySQL 会把内存的脏页都同步到磁盘
上,这样下次 MySQL 启动的时候,就可以直接从磁盘上读数据,启动速度会很快。这种没有性能问题。会造成的影响
redo log 写满
。否则整个系统的更新都会停止。此时写的性能变为 0
,必须等待该日志对应脏页同步完成
后才能更新,这时就会导致 sql 语句 执行的很慢。