Alocação de memória é importante quando você executa o
myisamchk
. myisamchk
não utiliza mais memória do que você especifica com a
opção -O
. Se você irá utilizar o
myisamchk
em grandes arquivos, você deve
decidir primeiro quanta memória deseja usar. O valor padrão
é utilizar somente 3MB para correções. Utilizando valores
maiores, o myisamchk
pode operar mais
rapidamente. Por exemplo, se você tiver mais que 32M de
memória RAM, você pode utilizar opções tais como esta (em
adição às várias outras que podem ser especificadas):
shell> myisamchk -O sort=16M -O key=16M -O read=1M -O write=1M ...
Utilizando -O sort=16M
provavelmente é
suficiente para a maioria dos casos.
Certiffique-se que o myisamchk
utiliza
arquivos temporários em TMPDIR
. Se
TMPDIR
aponta para um sistema de arquivos
em memória, você pode facilmente obter erros de memória. Se
isto acontecer, configure TMPDIR
para
apontar para algum diretório com mais espaço e reinicie o
myisamchk
.
Quando reparando, o myisamchk
também
precisará de bastante espaço em disco:
Dobra-se o tamanho do arquivo de registros (o original e
uma cópia). Este espaço não é necessário se for feito
um reparo com --quick
, já que neste caso
somente o arquivo de índices será recriado. Este espaço
é necessário no mesmo disco que se encontra o arquivo de
registros original!
Espaço para o novo arquivo de índice que substitui o antigo. O arquivo de índices antigo é truncando no início, portanto, normalmente este espaço é ignorado. Este espaço é necessário no mesmo disco que o arquivo de índice original!
Quando utilizando --recover
ou
--sort-recover
(mas não quando usando
--safe-recover
, será necessário espaço
para um buffer de ordenação de: (maior_chave +
tamanho_do_ponteiro_de_registro)*número_de_registros *
2
. Você pode conferir o tamanho das chaves e o
tamanho_do_ponteiro_de_registro com myisamchk -dv
tabela
. Este espaço é alocado no disco
temporário (especificado por TMPDIR
ou
--tmpdir=#
).
Se você tiver um problema com espaço em disco durante o
reparo, pode-se tentar usar --safe-recover
em
vez de --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.