The world's most popular open source database
Los registros de las tablas InnoDB tienen las
siguientes características:
Cada registro de índice en InnoDB contiene un
encabezado de seis bytes. El encabezado se emplea para enlazar
juntos registros consecutivos, y también en el bloqueo a nivel de
fila.
Los registros en el índice agrupado contienen campos para todas las columnas definidas por el usuario. Adicionalmente, hay un campo de seis bytes para el IDentificador de transacción y un campo de siete bytes para el roll pointer.
Si no se definió una clave primaria para la tabla, cada registro de índice agrupado contiene también un campo de IDentificación de fila de seis bytes.
Cada registro de índice secundario contiene también todos los campos definidos para la clave del índice agrupado.
Un registro contiene además un puntero a cada campo del mismo. Si la longitud total de los campos en un registro es menos de 128 bytes, el puntero medirá un byte, de lo contrario, tendrá dos bytes de longitud. La matriz de estos punteros se conoce como el directorio de registros. El área a donde señalan estos punteros se denomina la parte de datos del registro.
Internamente, InnoDB almacena las columnas de
caracteres de longitud fija (como CHAR(10)) en un
formato de longitud fija. InnoDB trunca los
espacios sobrantes de las columnas VARCHAR.
Nótese que MySQL puede convertir internamente columnas
CHAR a VARCHAR. Consulte
Sección 13.1.5.1, “Cambios tácitos en la especificación de columnas”.
Un valor NULL SQL reserva 1 o 2 bytes en el
directorio de registros. No reservará ningún byte en la parte de
datos del registro si se lo almacena en una columna de longitud
variable. En una columna de longitud fija, reservará en la parte de
datos la longitud asignada a dicha columna. La razón por la que se
reserva este espacio fijo a pesar de tratarse de un valor
NULL, es que en el futuro se podrá insertar en su
lugar un valor no-NULL sin provocar la
fragmentación de la página de índice.
É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.

