Вы не сказали, была ли это тестовая система или производство; Я предполагаю, что это производство.
Вероятно, вы получили таблицу с размером, в котором ее индексы (или весь лот) больше не помещаются в памяти.
Это означает, что InnoDB должен читать страницы во время вставки (в зависимости от распределения значений индекса ваших новых строк). Чтение страниц (случайное чтение) действительно медленное, и по возможности его следует избегать.
Разделение кажется наиболее очевидным решением, но разделение MySQL может не соответствовать вашему варианту использования.
Вам, безусловно, следует рассмотреть все возможные варианты - перенесите таблицу на тестовый сервер в своей лаборатории, чтобы увидеть, как он себя ведет.
Ваш первичный ключ выглядит для меня так, как будто он, возможно, не требуется (у вас есть другой уникальный индекс), поэтому исключение этого является одним из вариантов.
Также рассмотрите плагин и сжатие innodb, это заставит ваш innodb_buffer_pool пойти дальше.
Вам действительно нужно проанализировать ваши сценарии использования, чтобы решить, действительно ли вам нужно хранить все эти данные, и является ли разделение разумным решением.
Внесение каких-либо изменений в это приложение может привести к новым проблемам с производительностью для ваших пользователей, поэтому вам следует быть здесь очень осторожным. Если вы найдете способ улучшить производительность вставки, возможно, это снизит производительность поиска или производительность других операций. Вам нужно будет провести тщательный тест производительности на оборудовании промышленного уровня, прежде чем выпускать такие изменения.