14.13.15 Using the CRC32 Checksum Algorithm for Faster Checksums

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 setting innodb_checksum_algorithm=crc32.


The innodb_checksum_algorithm configuration parameter, also introduced in MySQL 5.6.3, replaces the innodb_checksums configuration parameter. Refer the to the innodb_checksum_algorithm 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 innodb_checksum_algorithm=strict_crc32 setting, which can be faster than the crc32 setting because it does not perform extra checksum calculations to support both old and new values.

The default value for innodb_checksum_algorithm was changed from innodb to 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 MySQL Enterprise Backup. The limitations encountered included: