The CRC32 checksum algorithm, introduced in MySQL 5.6.3, scans
blocks 32 bits at a time, which is an improvement over the
InnoDB checksum algorithm which scans blocks 8
bits at a time. You can enable the CRC32 checksum algorithm by
configuration parameter, also introduced in MySQL 5.6.3,
configuration parameter. Refer the to the
documentation for additional information.
When the CRC32 algorithm is enabled, data blocks that are written
to disk by
InnoDB contain different values in
their checksum fields than before. Once blocks in a tablespace are
modified to use the CRC32 checksum algorithm, the associated
tables cannot be read by earlier versions of MySQL.
When setting up a new MySQL instance, and all
InnoDB data is created using the CRC32 checksum
algorithm, you can use the
setting, which can be faster than the
setting because it does not perform extra checksum calculations to
support both old and new values.
The default value for
was changed from
crc32 in MySQL 5.6.6, but switched back to
innodb in 5.6.7 for improved compatibility of
InnoDB data files during a downgrade to an
earlier MySQL version, and for use with
Backup. The limitations encountered included:
.ibd files containing CRC32 checksums could
cause problems downgrading to MySQL versions prior to 5.6.3.
MySQL 5.6.3 and up recognizes either the new or old checksum
values for the block as correct when reading the block from
disk, ensuring that data blocks are compatible during upgrade
and downgrade regardless of the algorithm setting. If data
written with new checksum values is processed by a level of
MySQL earlier than 5.6.3, it could be reported as corrupted.
Versions of MySQL Enterprise Backup up to 3.8.0 do not support backing up tablespaces that use CRC32 checksums. MySQL Enterprise Backup adds CRC32 checksum support in 3.8.1, with some limitations. Refer to the MySQL Enterprise Backup 3.8.1 Change History for more information.