Spec-Zone .ru
спецификации, руководства, описания, API
|
CHECKSUM TABLEtbl_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.17,"CREATE TABLE
Синтаксис" для синтаксиса CHECKSUM
пункт.
Для несуществующей таблицы, CHECKSUM
TABLE
возвраты NULL
и генерирует предупреждение.
До MySQL 5.6.4, CHECKSUM TABLE
возвращенный 0 для разделенных таблиц, если EXTENDED
опция использовалась. (Ошибка
#11933226, Ошибка #60681)
Значение контрольной суммы зависит от формата строки таблицы. Если формат строки изменяется, контрольная сумма
также изменяется. Например, формат хранения для VARCHAR
измененный между MySQL 4.1 и 5.0, так, если 4.1 таблицы обновляются
до MySQL 5.0, значение контрольной суммы может измениться.
Если контрольные суммы для двух таблиц отличаются, то почти бесспорно, что таблицы отличаются в
некотором роде. Однако, потому что хеш-функция, используемая CHECKSUM TABLE
как гарантируют, не будет без коллизий, есть небольшой
шанс, что две таблицы, которые не идентичны, могут произвести ту же самую контрольную сумму.