Spec-Zone .ru
спецификации, руководства, описания, API

13.7.2.3. CHECKSUM TABLE Синтаксис

CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]

CHECKSUM TABLE сообщает контрольная сумма для содержания таблицы. Можно использовать этот оператор, чтобы проверить, что содержание является тем же самым прежде и после резервного копирования, отката, или другой работы, которая предназначается, чтобы отложить данные к известному состоянию. Этот оператор требует SELECT полномочие для таблицы.

Соображения производительности

По умолчанию вся таблица является строкой чтения строкой, и контрольная сумма вычисляется. Для больших таблиц это могло занять много времени, таким образом Вы будете только иногда выполнять эту работу. Это вычисление строки строкой состоит в том тем, что Вы получаете с EXTENDED пункт, с InnoDB и все другие механизмы хранения кроме MyISAM, и с MyISAM таблицы, не составленные с CHECKSUM=1 пункт.

Для MyISAM таблицы, составленные с CHECKSUM=1 пункт, CHECKSUM TABLE или CHECKSUM TABLE ... QUICK возвращает "живую" табличную контрольную сумму, которая может быть возвращена очень быстро. Если таблица не удовлетворяет всем этим условиям, QUICK возвраты метода NULL. См. Раздел 13.1.14,"CREATE TABLE Синтаксис" для синтаксиса CHECKSUM пункт.

Для несуществующей таблицы, CHECKSUM TABLE возвраты NULL и генерирует предупреждение.

Значение контрольной суммы зависит от формата строки таблицы. Если формат строки изменяется, контрольная сумма также изменяется. Например, формат хранения для VARCHAR измененный между MySQL 4.1 и 5.0, так, если 4.1 таблицы обновляются до MySQL 5.0, значение контрольной суммы может измениться.

Важный

Если контрольные суммы для двух таблиц отличаются, то почти бесспорно, что таблицы отличаются в некотором роде. Однако, потому что хеш-функция, используемая CHECKSUM TABLE как гарантируют, не будет без коллизий, есть небольшой шанс, что две таблицы, которые не идентичны, могут произвести ту же самую контрольную сумму.