La reserva de memoria es importante cuando ejecute
myisamchk. myisamchk no
utiliza más memoria de la que se especifique con las opciones
-O
. Si usted va a utilizar
myisamchk en tablas muy grandes, debería
primero decidir cuanta memoria quiere utilizar. Por defecto,
se utilizarán más o menos 3MB para realizar reparaciones.
Utilizando valores más grandes, puede conseguir que
myisamchk funcione más rápido. Por
ejemplo, si tiene más de 32MB de RAM, podría utilizar estas
otras opciones (además de las otras que pueda especificar):
shell> myisamchk -O sort=16M -O key=16M -O read=1M -O write=1M ...
Utilizar -O sort=16M
probablemente sea
suficiente para la mayoría de los casos.
Tenga en cuenta que myisamchk utiliza
archivos temporales en TMPDIR
. Si
TMPDIR
apunta a un sistema de ficheros en
memoria, podría quedarse fácilmente sin memoria y obtener
errores. Si esto ocurre, haga que TMPDIR
apunte a algún directorio de un sistema de ficheros con más
espacio y ejecute el comando myisamchk de
nuevo.
Mientras está reparando, myisamchk también necesita mucho espacio de disco:
Doble el espacio del archivo de datos (el original y una
copia). Este espacio no se necesitará si hace una
reparación con la opción --quick
; en
este caso solo se reconstruye el archivo de índices (la
copia se crea en el mismo directorio que el original.)
El espacio para el archivo de índices que reemplaza al viejo. El archivo de índices viejo se trunca en el inicio de la operación de reparación, así que usualmente este espacio se ignora. Este espacio debe estar en el mismo sistema de ficheros que el archivo de índices original.
Cuando utilice --recover
o
--sort-recover
(pero no al utilizar
--safe-recover
), necesitará espacio
para un buffer de ordenación. El espacio requerido es:
(clave_más_larga
+longitud_de_puntero_a_registro
) *número_de_registros
* 2
Puede comprobar la longitud de las claves y la
longitud_de_puntero_a_registro con myisamchk -dv
tbl_name
. Este
espacio se reserva en el directorio temporal (especificado
por TMPDIR
o
--tmpdir=
).
path
Si tiene algún problema con el espacio de disco durante una
reparación, puede intentar utilizar
--safe-recover
en vez de
--recover
.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.