《MYSQL实战45讲》将脏页刷进磁盘时导致的性能抖动

脏页

当修改数据时,如果数据在内存中,就会直接在内存中修改,并且将操作记录在redolog中,这时就可以直接返回了。这时这个内存中的数据页与磁盘中的数据是不同的,称为脏页

flush

Mysql将内存中的脏页刷新到磁盘称为flush

flush时机

1.当redolog 空间不足时,系统会停止所有更新操作,再把redolog的操作日志写入磁盘

2.当内存空间不足,触发了缓存淘汰机制,而被淘汰的刚好是脏页,就必须先把脏页数据对应的redolog写入磁盘

3.后台线程抽出空闲时间来刷新

4.mysql关闭的时候

1和2对性能影响较大

对于flush时机,两种明显影响性能的情况

1.当一个查询涉及太多数据,导致内存不足,需要淘汰大量脏页,由于会先将脏页刷盘,所以十分影响性能

2.redo log写满了,堵住所有更新。

缓存淘汰脏页,为什么不直接删除脏页,在访问到脏页中的数据时再从磁盘读取并执行redo log的操作?

如果这样的话,每次读取数据到内存中时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值