Un cuello de botella a tener en cuenta es el InnoDB Log Buffer. Innodb_log_buffer_size establece el tamaño . Esto es lo que dice la documentación de MySQL al respecto:
El tamaño en bytes del búfer que InnoDB usa para escribir en los archivos de registro en el disco. El valor predeterminado es 8 MB. Un búfer de registro grande permite ejecutar grandes transacciones sin necesidad de escribir el registro en el disco antes de que se confirmen las transacciones. Por lo tanto, si tiene grandes transacciones, agrandar el búfer de registro ahorra E / S de disco.
El InnoDB Log Buffer no debe confundirse con el InnoDB Buffer Pool. La principal diferencia entre ellos es su propósito. El InnoDB Log Buffer básicamente registrará los cambios a corto plazo que se escriben en los registros de rehacer (ib_logfile0, ib_logfile1). El InnoDB Buffer Pool (dimensionado por innodb_buffer_pool_size ) almacena en caché los datos y las páginas de índice que deben confirmarse (si las páginas están sucias) y eventualmente escribirse) en el disco. Una vez confirmados, las páginas de cambios permanecen en la RAM hasta que se eliminen mediante las reglas LRU.
Las grandes transacciones deben canalizarse a través del Log Buffer. Como se mencionó, un búfer de registro más grande reducirá la E / S del disco. Solo una gran confirmación presentaría un cuello de botella.
Es posible que desee buscar otras opciones de InnoDB para configurar.
Tengo otras publicaciones sobre la optimización de InnoDB para futuras investigaciones.