При работе myisamchk очень
важно распределение памяти. Объем
используемой myisamchk
памяти не превышает количества,
указанного с помощью опций
-O. Когда речь идет о
применении myisamchk на
очень больших файлах, следует
сначала принять решение о том,
какое количество памяти будет при
этом использоваться. По умолчанию
для целей исправления ошибок
отводится только около 3Mб.
Применяя большие величины, можно
достичь большей скорости работы
myisamchk. К примеру, если
имеется более 32Mб оперативной
памяти, то можно задать следующие
опции (в дополнение к любым другим
указанным опциям):
shell> myisamchk -O sort=16M -O key=16M -O read=1M -O write=1M ...
В большинстве случаев достаточно
использовать -O sort=16M.
Важно понимать, что
myisamchk использует
временные файлы, для указания на
которые служит TMPDIR.
Если TMPDIR указывает на
файловую систему с размещением в
памяти, то велика вероятность
ошибок нехватки памяти (out of memory).
Если такое произойдет, то в
TMPDIR следует поместить
имя некоторого другого каталога с
большим пространством и
перезапустить myisamchk.
При выполнении ремонта
myisamchk также понадобится
большое количество дискового
пространства; :
Потребуется пространство
порядка удвоенного размера
файла - для оригинала и копии
файла данных. В этом
пространстве нет
необходимости, когда
исправление выполняется с
--quick, поскольку в этом
случае повторно создается
только индексный файл.
Дополнительное место
необходимо на том же диске, где
находится оригинальный файл
записи!
Необходимо место для нового индексного файла, заменяющего старый. В начальной фазе выполнения старый индексный файл усекается, поэтому обычно данный объем можно не учитывать. Место должно обеспечиваться на диске, содержащем оригинальный индексный файл!
При указании --recover или
--sort-recover (но не в случае
использования
--safe-recover) потребуется
место для буфера сортировки:
(largest_key + row_pointer_length)*number_of_rows
* 2. Можно узнать длину
ключей и row_pointer_length с
помощью myisamchk -dv table.
Это пространство выделяется на
временном диске (который
определяется при помощи
TMPDIR либо
--tmpdir=#).
Если возникнут проблемы в связи с
нехваткой дискового пространства
во время исправления, можно
попробовать использовать
--safe-recover вместо
--recover.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
