InnoDB
emplea E/S en disco asíncrona
simulada: InnoDB
crea un número de procesos
para hacerse cargo de las operaciones de E/S, tal como lectura
por adelantado (read-ahead).
En InnoDB
hay dos métodos de lectura por
adelantado:
En la lectura por adelantado secuencial, si
InnoDB
advierte que el patrón de acceso
a un segmento en el espacio de tablas es secuencial, envía
por adelantado al sistema de E/S un lote de lectura de
páginas de base de datos.
En la lectura por adelantado aleatoria, si
InnoDB
advierte que algún sector del
espacio de tablas parece estar en proceso de ser
completamente leido dentro del pool de búfer, envía las
lecturas restantes al sistema de E/S.
InnoDB
emplea una novedosa técnica de
descarga de ficheros llamada doublewrite.
La misma incrementa la seguridad en la recuperación que sigue a
una caida del sistema operativo o una interrupción de energía
eléctrica, y mejora el rendimiento en muchas variedades de Unix
al reducir la necesidad de usar operaciones
fsync()
.
Doublewrite (escritura doble) significa que antes de escribir
páginas en un fichero de datos, InnoDB
las
escribe primero en un área contigua del espacio de tablas
llamada el búfer de doublewrite (o de escritura doble).
Solamente luego de que la escritura y descarga al búfer de
escritura doble se ha completado, InnoDB
escribe las páginas en el sitio apropiado del fichero de datos.
Si el sistema operativo colapsa en el transcurso de una
escritura de página, InnoDB
, posteriormente,
durante la recuperación, podrá hallar una copia en buen estado
en el búfer de escritura doble.
É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.