Следующие опции используются, если myisamchk
запускается с -r
или -o
:
-D # или --data-file-length=# Максимальная длина файла данных (когда файл данных пересоздается при его ``переполнении'').
-e или --extend-check Пробовать исправлять каждую возможную строку из файла данных. Обычно при этом обнаруживается масса замусоренных строк. Использовать эту опцию следует только в самом крайнем случае, когда больше ничего не остается.
-f или --force Писать поверх старых временных файлов (
table_name.TMD
) вместо аварийного прекращения.-k # или keys-used=# Если используется
ISAM
, то данный параметр предписывает обработчику таблицISAM
на необходимость обновить только первые#
индексов. Если используетсяMyISAM
, то определяет, какие ключи использовать, при этом каждый двоичный бит соответствует одному ключу (первый ключ - это бит 0). Может использоваться для ускорения вставок! Отключенные индексы можно снова активизировать с помощьюmyisamchk -r. keys
.-l или --no-symlinks Не рассматривать символические ссылки. Обычно
myisamchk
исправляет таблицы, на которые указывают символические ссылки. Данная опция отсутствует в MySQL 4.0, в связи с тем, что MySQL 4.0 не удаляет символические ссылки во время восстановления.-r или --recover При указании этой опции можно исправить практически все, кроме уникальных ключей, в которых есть повторения (ошибка, вероятность которой мизерна для таблиц
ISAM
/MyISAM
). Если необходимо восстановить таблицу, то начинать надо с этой опции. Только еслиmyisamchk
сообщит, что таблица не может быть восстановлена с помощью-r
, тогда следует пытаться применять-o
(отметим, что в тех маловероятных случаях, когда-r
не срабатывает, файл данных остается неизменным), В случае большого объема памяти следует увеличить размерsort_buffer_size
!-
-o или --safe-recover
Используется старый метод восстановления (читаются подряд все строки и обновляются все деревья индексов на основе найденных строк); такой алгоритм работает на порядок медленнее
-r
, но метод справляется с несколькими редкими случаями, непосильными для-r
. При этом методе восстановления также используется значительно меньше дискового пространства, нежели в случае-r
. Обычно всегда следует начинать с исправления посредством-r
, и только если результат не будет достигнут, использовать-o
. Для систем с большим объемом памяти следует увеличить размерkey_buffer_size
! -
-n или --sort-recover
Заставляет
myisamchk
использовать сортировку при разрешении ключей, даже если это потребует временных файлов очень большого размера. -
--character-sets-dir=...
Каталог, где хранятся кодировки.
-
--set-character-set=name
Изменить используемую для индекса кодировку
-
-t или --tmpdir=path
Путь для хранения временных файлов. Если не задан,
myisamchk
использует для пути переменную окруженияTMPDIR
. Начиная с MySQL 4.1, вTMPDIR
могут быть указаны несколько путей, разделенных двоеточием:
(точкой с запятой на Windows;
). Эти пути будут использованы в ротации. Это используется для того, чтобы распределить данные между разными физическими дисками. -
-q или --quick
Быстрый ремонт без изменения файла данных. Можно добавить вторую
-q
, чтобы датьmyisamchk
санкцию на изменение исходного файла данных в случае дублирования ключей -
-u или --unpack
Распаковать файл, упакованный в
myisampack
.