Revision
1467
User
monty
Date
2010-09-20 15:59
== Syntax <<code>> CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ] <</code>> == Description <<code>>CHECKSUM TABLE<</code>> reports a table checksum. This is very useful if you want to know if two tables are the same (for example on a master and slave). With <<code>>QUICK<</code>>, the live table checksum is reported if it is available, or <<code>>NULL<</code>> otherwise. This is very fast. A live checksum is enabled by specifying the <<code>>CHECKSUM=1<</code>> table option when you [[create-table|create the table]]; currently, this is supported only for Aria and MyISAM tables. With <<code>>EXTENDED<</code>>, the entire table is read row by row and the checksum is calculated. This can be very slow for large tables. If neither <<code>>QUICK<</code>> nor <<code>>EXTENDED<</code>> is specified, MariaDB returns a live checksum if the table storage engine supports it and scans the table otherwise. For a nonexistent table, <<code>>CHECKSUM TABLE<</code>> returns <<code>>NULL<</code>> and generates a warning. == Differences between MariaDB and MySQL <<code>>CHECKSUM TABLE<</code>> may give different result as MariaDB doesn't ignore <<code>>NULL<</code>>'s in the columns as MySQL 5.1 does (Future MySQL versions should calculate checksums the same way as MariaDB). You can get the 'old style' checksum in MariaDB by starting mysqld with the <<code>>--old<</code>> option. Note however that that the MyISAM and Aria storage engines in MariaDB are using the new checksum internally, so if you are using <<code>>--old<</code>>, the <<code>>CHECKSUM<</code>> command will be slower as it needs to calculate the checksum row by row.