MySQL什么时候刷脏页?
MySQL什么时候刷脏页?
提示
题眼: 冷门题目
- RedoLog写满时,需要暂停更新操作。此时会停止所有的写入操作!
- 机器的物理内存满了的时候
- Mysql处于空闲状态时
- Mysql重启时
重要
参考答案:
因为WAL机制嘛,MySQL会先写日志,再写数据,而且他不是立刻写,而是在空闲时间写的。通常情况下,MySQL如果空闲了,会把脏页写会到磁盘,或者机器的内存满了,这个时候也会写会磁盘。另外,RedoLog它是个环形的,当它写满的时候也会暂停下,先刷一下脏页。最后的话,当MySQL重启的时候,他会先把脏页刷回磁盘,所以有些时候我们能看到MySQL重启的时候要稍微花点时间,大概率是在刷脏页。
