The world's most popular open source database
Los ficheros de datos definidos en el fichero de configuración forman el
espacio de tablas de InnoDB. Los ficheros simplemente
son concatenados para formar el espacio de tablas. No se utiliza
striping (grabación de datos a través de varios discos en simultáneo).
Actualmente no se puede definir en qué parte del espacio de tablas se
ubicarán las tablas. Sin embargo, en un espacio de tablas nuevo,
InnoDB asigna el espacio comenzando por el primer
fichero de datos.
El espacio de tablas consiste en páginas de base de datos con un tamaño
por defecto de 16KB. Las páginas se agrupan en áreas de 64 páginas
consecutivas. Los “ficheros” dentro de un espacio de tablas
se llaman segmentos en InnoDB.
El término “segmento de cancelación” (rollback segment) es
un tanto confuso porque en realidad contiene varios segmentos del
espacio de tablas.
Por cada índice de InnoDB se asignan dos segmentos.
Uno es para los nodos que no son hojas del B-tree, el otro es para los
nodos hoja. La idea es mejorar la secuencialidad de los nodos hoja,
los cuales contienen los datos.
Cuando un segmento crece dentro del espacio de tablas,
InnoDB ubica las primeras 32 páginas individualmente.
Luego de ello, comienza a ubicar áreas enteras en el segmento.
InnoDB puede adicionar a un segmento grande hasta 4
áreas de páginas cada vez, para asegurar una adecuada secuencialidad
de los datos.
Algunas páginas en el espacio de tablas contienen bitmaps de otras
páginas, por lo tanto unas pocas áreas en un espacio de tablas
InnoDB no puede asignarse a segmentos como un todo,
sino solamente como páginas individuales.
Cuando se consulta el espacio libre disponible en el espacio de tablas
mediante una sentencia SHOW TABLE STATUS,
InnoDB informa las áreas que están totalmente libres
en el espacio de tablas. InnoDB siempre reserva
algunas áreas para depuración y otros propósitos internos; estas áreas
reservadas no se cuentan en el espacio libre.
Cuando se eliminan datos de una tabla, InnoDB reduce
los correspondientes índices B-tree. Depende del patrón seguido por
las eliminaciones, si se liberan páginas individuales o áreas del
espacio de tablas, de forma que el espacio desocupado quede disponible
para otros usuarios. Eliminar una tabla, o todas las filas que contiene,
seguramente servirá para liberar el espacio, pero no hay que olvidar que
las filas eliminadas solamente desaparecen físicamente cuando dejan de
ser necesarias para cancelar transacciones o de integrar lecturas
consistentes.
É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.

