コマンドを発行するSHOW GLOBAL STATUS;
MySQL
と、次の行が表示されます。
Innodb_buffer_pool_pages_dirty 28
ドキュメントを検索すると、次のように表示されます。
現在ダーティなページ数。MySQL5.0.2で追加されました。
どうすればこれを修正できますか(ダーティページがあるのは良くないと思います)?
データベースに変更(UPDATE / INSERT / DELETE)がある場合、ダーティページがあるのは正常です。
行を変更すると、MySQLはバッファプール内の行を更新し、ページを「ダーティ」としてマークします。変更はバイナリログにも書き込まれるため、クラッシュした場合、MySQLはログを再生し、データが失われることはありません。バイナリログへの書き込みは高速な追加専用(シーケンシャル)操作ですが、実際のページ更新では低速のランダム書き込みが使用されます。(これはバックグラウンドで行われます)
MySQLは、バッファプールに新しいデータをロードする必要があるときに、ダーティページをディスクにフラッシュします。したがって、InnoDBにダーティページがあるのは正常なことです。これがその仕組みであり、全体的なパフォーマンスを向上させるために行われます。
しかし、本当にそれらを取り除きたい場合は、innodb_max_dirty_pages_pctを0に設定してください