MySQL 5.6.3で導入されたCRC32チェックサムアルゴリズムは,ブロックを1回につき32ビットスキャンします。これは,ブロックを1回に8ビットスキャンするInnoDB
のチェックサムアルゴリズムに対する改善です。Crc32チェックサムアルゴリズムは,innodb_checksum_algorithm = crc32
を設定することによって有効にすることができます。
同様にMySQL 5.6.3で導入されたinnodb_checksum_algorithm
構成パラメタによって,innodb_checksums
構成パラメタが置き換えられます。詳細は,innodb_checksum_algorithm
のドキュメントを参照してください。
Crc32アルゴリズムが有効になっている場合,InnoDB
によってディスクに書き込まれるデータブロックのチェックサムフィールドには,以前とは異なる値が含まれています。テーブルスペース内のブロックがCRC32チェックサムアルゴリズムを使用するように変更されたあと,関連付けられたテーブルを以前のバージョンのMySQLで読み取ることはできません。
新しいMySQL MySQL目录ンスタンスを設定するときに,すべてのInnoDB
デタがcrc32チェックサムアルゴリズムを使用して作成されている場合は,innodb_checksum_algorithm = strict_crc32
設定を使用できます。これは,古い値と新しい値の両方をサポ,トするための余分なチェックサム計算を実行しないため,crc32
設定より高速である可能性があります。
innodb_checksum_algorithm
のデフォルト値はMySQL 5.6.6でinnodb
からcrc32
に変更されましたが,以前のMySQLバInnoDB
デタファルの互換性向上のため,およびMySQL企业备份で使用するために5.6.7でinnodb
に戻されました。検出された制限には,次のものが含まれます。
Crc32チェックサムを含む
.ibd
ファイルは,5.6.3より前のMySQLバージョンへのダウングレード中に問題が発生する可能性があります。MySQL 5.6.3以降では,ディスクからブロックを読み取るとき,そのブロックの新しいチェックサム値と古いチェックサム値のどちらも正しいとして認識します。それにより,アルゴリズムの設定には関係なく,アップグレードおよびダウングレード中にそのデータブロックの互換性を保証します。新しいチェックサム値で書き込まれたデータが5.6.3より前のレベルのMySQLによって処理された場合は,破損しているとしてレポートされる可能性があります。3.8.0までのバジョンのMySQL企业备份は,crc32チェックサムを使用するテブルスペスのバックアップをサポトしていません。MySQL企业备份は,CRC32チェックサムのサポートを3.8.1で(いくつかの制限付きで)追加しています。詳細は,MySQL企业备份3.8.1の変更履歴を参照してください。