Одним из узких мест, о которых следует знать, является буфер журналов InnoDB. Размер устанавливается innodb_log_buffer_size . Вот что говорит об этом документация MySQL:
Размер в байтах буфера, который InnoDB использует для записи в файлы журналов на диске. Значение по умолчанию составляет 8 МБ. Большой буфер журнала позволяет выполнять большие транзакции без необходимости записывать журнал на диск до фиксации транзакций. Таким образом, если у вас большие транзакции, увеличение размера буфера журнала экономит дисковый ввод-вывод.
Не следует путать буфер журнала InnoDB с пулом буферов InnoDB. Основное различие между ними заключается в их предназначении. InnoDB Log Buffer будет в основном записывать кратковременные изменения, которые записываются в журналы повторов (ib_logfile0, ib_logfile1). Буферный пул InnoDB (по размеру innodb_buffer_pool_size ) кэширует страницы данных и индексов, которые должны быть зафиксированы (если страницы загрязнены) и в конечном итоге записаны) на диск. После подтверждения страницы изменений остаются в оперативной памяти до тех пор, пока не будут удалены с помощью правил LRU.
Большие транзакции должны проходить через Log Buffer. Как уже упоминалось, больший буфер журнала уменьшит дисковый ввод-вывод. Узкое место может представлять только большой коммит.
Возможно, вы захотите посмотреть другие параметры InnoDB для настройки.
У меня есть другие посты об оптимизации InnoDB для дальнейшего исследования