Um gargalo a ser observado é o InnoDB Log Buffer. O tamanho é definido por innodb_log_buffer_size . Aqui está o que a documentação do MySQL diz sobre isso:
O tamanho em bytes do buffer que o InnoDB usa para gravar nos arquivos de log no disco. O valor padrão é 8 MB. Um grande buffer de log permite que grandes transações sejam executadas sem a necessidade de gravar o log no disco antes que as transações sejam confirmadas. Portanto, se você tiver grandes transações, aumentar o buffer de log economizará a E / S do disco.
O InnoDB Log Buffer não deve ser confundido com o InnoDB Buffer Pool. A principal diferença entre eles é o seu propósito. O InnoDB Log Buffer basicamente registra alterações de curto prazo que são gravadas nos logs de refazer (ib_logfile0, ib_logfile1). O InnoDB Buffer Pool (dimensionado por innodb_buffer_pool_size ) armazena em cache os dados e as páginas de índice que devem ser confirmadas (se as páginas estiverem sujas) e eventualmente gravadas) no disco. Uma vez confirmadas, as páginas de alterações permanecem na RAM até serem removidas pelas regras de LRU.
Grandes transações devem canalizar através do Log Buffer. Como mencionado, um buffer de log maior reduzirá a E / S do disco. Somente um grande commit apresentaria um gargalo.
Você pode procurar outras opções do InnoDB para configurar.
Tenho outros posts sobre como otimizar o InnoDB para futuras pesquisas