Para obtener una descripción de tabla o estadísticas acerca de ella, use el comando mostrado a continuación:
myisamchk -d
nombre_tabla
Ejecute myisamchk en ``modo
descripción'' para producir una descripción de la tabla.
Si inicia el servidor MySQL usando la opción
--skip-external-locking
,
myisamchk puede reportar un error para
una tabla que se actualice mientras está en ejecución. Sin
embargo, ya que myisamchk no cambia la
tabla en modo descripción, no hay riesgo de destruir los
datos.
myisamchk -d -v
nombre_tabla
Añadiendo -v
myisamchk se ejecuta en modo información
(verbose) así que produce más información acerca de lo
que está haciendo.
myisamchk -eis
nombre_tabla
Muestra sólo la información más importante de una tabla. Esta operación es lenta ya que debe leer la tabla entera.
myisamchk -eiv
nombre_tabla
Es como -eis
, pero dice lo que está
haciendo.
A continuación hay unos ejemplos de la salida de estos comandos. Están basados en una tabla con estos tamañanos de fichero de datos e índices:
-rw-rw-r-- 1 monty tcx 317235748 Jan 12 17:30 company.MYD -rw-rw-r-- 1 davida tcx 96482304 Jan 12 18:35 company.MYM
Ejemplos de salida de myisamchk -d:
MyISAM file: company.MYI Record format: Fixed length Data records: 1403698 Deleted blocks: 0 Recordlength: 226 table description: Key Start Len Index Type 1 2 8 unique double 2 15 10 multip. text packed stripped 3 219 8 multip. double 4 63 10 multip. text packed stripped 5 167 2 multip. unsigned short 6 177 4 multip. unsigned long 7 155 4 multip. text 8 138 4 multip. unsigned long 9 177 4 multip. unsigned long 193 1 text
Ejemplo de salida de myisamchk -d -v:
MyISAM file: company Record format: Fixed length File-version: 1 Creation time: 1999-10-30 12:12:51 Recover time: 1999-10-31 19:13:01 Status: checked Data records: 1403698 Deleted blocks: 0 Datafile parts: 1403698 Deleted data: 0 Datafile pointer (bytes): 3 Keyfile pointer (bytes): 3 Max datafile length: 3791650815 Max keyfile length: 4294967294 Recordlength: 226 table description: Key Start Len Index Type Rec/key Root Blocksize 1 2 8 unique double 1 15845376 1024 2 15 10 multip. text packed stripped 2 25062400 1024 3 219 8 multip. double 73 40907776 1024 4 63 10 multip. text packed stripped 5 48097280 1024 5 167 2 multip. unsigned short 4840 55200768 1024 6 177 4 multip. unsigned long 1346 65145856 1024 7 155 4 multip. text 4995 75090944 1024 8 138 4 multip. unsigned long 87 85036032 1024 9 177 4 multip. unsigned long 178 96481280 1024 193 1 text
Ejemplo de salida de myisamchk -eis:
Checking MyISAM file: company Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 98% Packed: 17% Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0 User time 1626.51, System time 232.36 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 627, Swaps 0 Blocks in 0 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 639, Involuntary context switches 28966
Ejemplo de salida de myisamchk -eiv:
Checking MyISAM file: company Data records: 1403698 Deleted blocks: 0 - check file-size - check delete-chain block_size 1024: index 1: index 2: index 3: index 4: index 5: index 6: index 7: index 8: index 9: No recordlinks - check index reference - check data record references index: 1 Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 2 Key: 2: Keyblocks used: 98% Packed: 50% Max levels: 4 - check data record references index: 3 Key: 3: Keyblocks used: 97% Packed: 0% Max levels: 4 - check data record references index: 4 Key: 4: Keyblocks used: 99% Packed: 60% Max levels: 3 - check data record references index: 5 Key: 5: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 6 Key: 6: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 7 Key: 7: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 8 Key: 8: Keyblocks used: 99% Packed: 0% Max levels: 3 - check data record references index: 9 Key: 9: Keyblocks used: 98% Packed: 0% Max levels: 4 Total: Keyblocks used: 9% Packed: 17% - check records and index references [LOTS OF ROW NUMBERS DELETED] Records: 1403698 M.recordlength: 226 Packed: 0% Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00 Record blocks: 1403698 Delete blocks: 0 Recorddata: 317235748 Deleted data: 0 Lost space: 0 Linkdata: 0 User time 1639.63, System time 251.61 Maximum resident set size 0, Integral resident set size 0 Non physical pagefaults 0, Physical pagefaults 10580, Swaps 0 Blocks in 4 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 10604, Involuntary context switches 122798
Explicación de los tipos de información que produce myisamchk se dan a continación. ``Keyfile'' se refiere al fichero índice. ``Record'' y ``row'' son sinónimos.
MyISAM file
(Fichero MyISAM)
Nombre del fichero índice MyISAM
.
File-version
(Versión del fichero)
Versión del formato MyISAM
. Actualmente
siempre es 2.
Creation time
(Fecha de creación)
Cuando se creó el fichero de datos.
Recover time
(Fecha de recuperación)
Cuando el fichero de índices/datos se reconstruyó por última vez.
Data records
(Fecha de recuperación)
Cuántos registros hay en la tabla.
Deleted blocks
(Bloques borrados)
Cuántos bloques borrados todavía tienen espacio reservado. Puede optimizar la tabla para minimizar este espacio. Consulte Sección 5.8.3.10, “Optimización de tablas”.
Datafile parts
(Partes de ficheros de
datos)
Para el formato de registros dinámicos, indica cuántos
bloques de datos hay. Para una tabla optimizada sin
registros fragmentados, es lo mismo que Registros
de datos
.
Deleted data
(Datos borrados)
Cuántos bytes hay de datos borrados sin reclamar. Puede optimizar la tabla para minimizar este espacio. Consulte Sección 5.8.3.10, “Optimización de tablas”.
Datafile pointer
(Puntero fichero de
datos)
El tamaño del puntero del fichero de datos, en bytes. Normalmente es de 2, 3, 4, o 5 bytes. La mayoría de tablas se administran con 2 bytes, pero MySQL no puede controlar esto todavía. Para tablas arregladas, esta es la dirección de un registro. Para tablas dinámicas, es la dirección de un byte.
Keyfile pointer
(Puntero fichero de
claves)
El tamaño del puntero del fichero índice, en bytes. Normalmente es de 1, 2, o 3 bytes. La mayoría de tablas se administran con 2 bytes, pero esto se calcula automáticamente por MySQL. Siempre es la dirección de un bloque.
Max datafile length
(Máximo tamaño
fichero de datos)
Cuánto puede crecer el fichero de datos, en bytes.
Max keyfile length
(Máximo tamaño
fichero de claves)
Cuánto puede creceer el fichero índice, en bytes.
Recordlength
(Tamaño registro)
El tamaño de cada registro, en bytes.
Record format
(Formato de registro)
El formato usado para almacenar registro de tablas. Los
ejemplos precedentes usan Fixed length
.
Otros valores posibles son Compressed
y
Packed
.
table description
(Descripción de tabla)
Una lista de todas las claves en la tabla. Para cada clave, myisamchk muestra alguna información a bajo nivel:
Key
(Clave)
El número de esta clave.
Start
(Inicio)
Dónde en el registro comienza esta parte del índice.
Len
(Longitud)
El tamaño de esta parte del índice. Para números empaquetados, este debería ser siempre la longitud completa de la columna. Para cadenas de caracteres, podría ser menor que la longitud total de la columna indexada, ya que puede indexar un prefijo de una columna de cadenas de caracteres.
Index
(Índice)
Si un valor clave puede existir múltiples veces en el
índice. Los valores son unique
o
multip.
(múltiples).
Type
(Tipo)
Qué tipo de datos tiene esta parte del índice. Este es
un tipo de datos MyISAM
con las
opciones packed
,
stripped
, o empty
.
Root
(Raíz)
Dirección del bloque índice raíz.
Blocksize
(Tamaño de bloque)
El tamaño de cada bloque de índices. Por defecto es de 1024, pero el valor puede cambiar en tiempo de compilación cuando MySQL se construye desde el código fuente.
Rec/key
(Registros/clave)
Este es un valor estadístico usado por el optimizador. Dice cuántos registros hay por valor para esta clave. Una clave única siempre tiene un valor de 1. Puede actualizarse tras la carga de una tabla (o muy cambiada) con myisamchk -a. Si no se actualiza en absoluto, el valor por defecto es 30.
Para la tabla mostrada en los ejemplos, hay dos líneas para
table description
(descripción de tabla)
para el noveno índice. Esto indica que es un índice de
múltiples partes, en este caso con dos.
Keyblocks used
(Bloques de claves usados)
Porcentaje de los bloques de clave usados. Cuando una tabla se ha reorganizad con myisamchk, como en los ejemplos, los valores son muy altos (muy cerca del máximo teórico).
Packed
(Empaquetado)
MySQL intenta empaquetar las claves con un sufijo común.
Sólo puede usarse para índices en columnas
CHAR
, VARCHAR
. Para
cadenas de caracteres largas que tienen partes izquierdas de
la cadena similares, esto puede reducir significativamente
el espacio usado. En el tercer ejemplo dado anteriomente, la
cuarta clave tiene una longitud de 10 caracteres y se
consigue una reducción del 60% del espacio.
Max levels
(Número máximo de niveles)
La profunidad del árbol-B para esta clave. Tablas grandes con valores de clave grandes obtienen valores altos.
Records
Registros
Número de registros en la tabla.
M.recordlength
Longitud de registro media
La media de la longitud de los registros. Este valor es la longitud de registro para tablas con registros de longitud fija, ya que todos los registros tienen la misma longitud.
Packed
Empaquetado
Espacios vacíos al final de las cadenas de caracteres en
MySQL. El valor Packed
indica el
porcentaje de ahorro conseguido haciendo un empaquetado.
Recordspace used
Espacio de registro usado
Porcentaje del fichero de datos usado.
Empty space
Espacio vacío
Porcentaje del fichero de datos sin usar.
Blocks/Record
Bloques/Registro
Número medio de bloques por registro (de cuántos enlaces se compone un registro fragmentado). Siempre es 1.0 para una tabla con formato fijo. Este valor debe estar tan cercano a 1.0 como sea posible. Si crece mucho, puede reorganizar la tabla. Consulte Sección 5.8.3.10, “Optimización de tablas”.
Recordblocks
Bloques de registro
Cuántos bloques (enlaces) se usan. Para formato fijo, esto es lo mismo que el número de registros.
Deleteblocks
Bloques borrados
Cuántos bloques (enlaces) están borrados.
Recorddata
Datos de registro
Cuántos bytes en el fichero de datos se usan.
Deleted data
Datos borrados
Cuántos bytes en el fichero de datos están borrados (no usados).
Lost space
Espacio perdido
Si un registro se actualiza a una longitudo más pequeña, se pierde algo de espacio. Este valor es la suma de todas estas pérdidas, en bytes.
Linkdata
Datos enlazados
Cuando se usa el formato de tabla dinámico, los fragmentos
de registros se enlazan con punteros (de 4 a 7 bytes cada
uno). Linkdata
es la suma de la cantidad
de almacenamiento usada por estos punteros.
Si una tabla se ha comprimido con myisampack, myisamchk -d muestra información adicional acerca de cada columna de la tabla. Consulte Sección 8.2, “myisampack, el generador de tablas comprimidas de sólo lectura de MySQL”, para un ejemplo de esta información y una descripción de lo que significa.
É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.