MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

15.6.4 二重書き込みバッファー

二重書込みバッファは、InnoDB データファイル内の適切な位置にページを書き込む前に、バッファプールからフラッシュされたページを InnoDB が書き込む記憶域です。 ページ書込み中にオペレーティングシステム、ストレージサブシステムまたは予期しない mysqld プロセスが終了した場合、InnoDB はクラッシュリカバリ中に二重書込みバッファからページの適切なコピーを見つけることができます。

データは 2 回書き込まれますが、二重書込みバッファには I/O オーバーヘッドの 2 倍や I/O 操作の 2 倍は必要ありません。 データは、オペレーティングシステムへの単一の fsync() コールを使用して、大きいシーケンシャルチャンクで二重書込みバッファに書き込まれます (innodb_flush_methodO_DIRECT_NO_FSYNC に設定されている場合を除く)。

MySQL 8.0.20 より前は、二重書込みバッファ記憶域は InnoDB システムテーブルスペースにありました。 MySQL 8.0.20 では、二重書込みバッファ記憶域は二重書込みファイルにあります。

二重書込みバッファ構成には、次の変数が用意されています:

MySQL 8.0.23 では、InnoDB は暗号化されたテーブルスペースに属する二重書込みファイルページを自動的に暗号化します (セクション15.13「InnoDB 保存データ暗号化」 を参照)。 同様に、ページ圧縮テーブルスペースに属する二重書込みファイルページも圧縮されます。 その結果、二重書込みファイルには、暗号化されていないページと圧縮されていないページ、暗号化されたページ、圧縮されたページ、暗号化と圧縮の両方を含む様々なページタイプを含めることができます。