当我发出SHOW GLOBAL STATUS;
MySQL
命令时,我得到的一行是:
Innodb_buffer_pool_pages_dirty 28
当我查看the documentation时,我看到的只有:
当前脏的页数。在MySQL 5.0.2中添加。
我该如何解决这个问题(我假设脏页不好)?
答案 0 :(得分:12)
拥有脏页是正常的。更新行时,MySQL会在缓冲池中更新它,将页面标记为脏。更改也写在二进制日志中,因此在崩溃的情况下,MySQL将重放日志,数据不会丢失。写入二进制日志是仅附加操作,而实际更新涉及随机写入,随机写入较慢。
当需要在缓冲池中加载新数据时,MySQL会将脏页刷新到磁盘。 因此,在InnoDB中使用脏页是正常的 - 它是如何工作的,并且它是为了提高整体性能而做的。
但是如果你真的想摆脱它们,请将innodb_max_dirty_pages_pct设置为0