ТАБЛИЦА КОНТРОЛЬНОЙ СУММЫ
Синтаксис
CHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]
Описание
CHECKSUM TABLE сообщает контрольную сумму таблицы. Это очень полезно, если вы хотите узнать, совпадают ли две таблицы (например, на главном и ведомом серверах).
С помощью QUICK, сообщается контрольная сумма живой таблицы, если она доступна, или NULL в противном случае. Это очень быстро. Живая контрольная сумма активируется путем указания параметра таблицы CHECKSUM=1 при создании таблицы; в настоящее время это поддерживается только для таблиц Aria и MyISAM.
С помощью EXTENDED, вся таблица считывается построчно, и вычисляется контрольная сумма. Это может быть очень медленно для больших таблиц.
Если не указаны ни QUICK, ни EXTENDED, MariaDB возвращает живую контрольную сумму, если движок хранения таблицы её поддерживает, и в противном случае сканирует таблицу.
CHECKSUM TABLE требует права SELECT для таблицы.
Для несуществующей таблицы, CHECKSUM TABLE возвращает NULL и генерирует предупреждение.
Формат строк таблицы влияет на значение контрольной суммы. Если формат строк изменится, контрольная сумма изменится. Это означает, что при обновлении таблицы, созданной с версией MariaDB/MySQL, до другой версии, значение контрольной суммы, скорее всего, изменится.
Две идентичные таблицы всегда должны соответствовать одному и тому же значению контрольной суммы; однако, даже для неидентичных таблиц существует очень небольшая вероятность, что они вернут одно и то же значение, поскольку алгоритм хэширования не является полностью свободным от коллизий.
Идентичные таблицы
Идентичные таблицы означают, что оператор CREATE идентичен и что следующая переменная, которая влияет на форматы хранения, была такой же при создании таблиц:
Различия между MariaDB и MySQL
CHECKSUM TABLE может дать другой результат, так как MariaDB не игнорирует NULL в столбцах, как MySQL 5.1 (более поздние версии MySQL должны вычислять контрольные суммы так же, как MariaDB). Вы можете получить контрольную сумму «старого стиля» в MariaDB, запустив mysqld с параметром --old. Обратите внимание, однако, что движки хранения MyISAM и Aria в MariaDB используют новую контрольную сумму внутри, поэтому если вы используете --old, команда CHECKSUM будет медленнее, так как ей необходимо вычислить контрольную сумму построчно. Начиная с MariaDB Server 10.9, --old устарела и будет удалена в будущей версии. Установите --old-mode или OLD_MODE на COMPAT_5_1_CHECKSUM для получения контрольной суммы «старого стиля».
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/checksum-table/