The current MySQL table checksum is very simple: it’s basically the same as CRC32(CONCAT(all data in the table)).

Since long ago we’ve had customers complain about the algorithm, but one doesn’t change such things every day.

Now the time has come to make the change. The only question is how much should the checksum formula be changed? Is it sufficient to just fix Bug#39474 or should we take the opportunity to do more?

  • Is crc32 a good enough function for a checksum? Should we start using some other hash function?
  • Should checksum change when table metadata changes? I.e. when you change the underlying data type? What about changing the table comment? Order of columns in the table?
  • Any other issues we should address along the way?

Your input is much appreciated!