8

コマンドを発行するSHOW GLOBAL STATUS; MySQLと、次の行が表示されます。

Innodb_buffer_pool_pages_dirty  28

ドキュメントを検索すると、次のように表示されます。

現在ダーティなページ数。MySQL5.0.2で追加されました。

どうすればこれを修正できますか(ダーティページがあるのは良くないと思います)?

4

1 に答える 1

19

データベースに変更(UPDATE / INSERT / DELETE)がある場合、ダーティページがあるのは正常です。

行を変更すると、MySQLはバッファプール内の行を更新し、ページを「ダーティ」としてマークします。変更はバイナリログにも書き込まれるため、クラッシュした場合、MySQLはログを再生し、データが失われることはありません。バイナリログへの書き込みは高速な追加専用(シーケンシャル)操作ですが、実際のページ更新では低速のランダム書き込みが使用されます。(これはバックグラウンドで行われます)

MySQLは、バッファプールに新しいデータをロードする必要があるときに、ダーティページをディスクにフラッシュします。したがって、InnoDBにダーティページがあるのは正常なことです。これがその仕組みであり、全体的なパフォーマンスを向上させるために行われます。

しかし、本当にそれらを取り除きたい場合は、innodb_max_dirty_pages_pctを0に設定してください

于 2012-04-15T18:14:49.107 に答える