Несколько общих предложений, поскольку у меня нет для вас серебряной пули:
Я не думаю, что вы можете ожидать, что при вставке размер таблиц не замедлится вообще. Время вставки базы данных, как правило, будет зависеть от размера базы данных. Хитрость заключается в том, чтобы попытаться сделать общую производительность приемлемой с учетом этого ожидания.
Если что-то замедляется и процессор не привязан, то вы, вероятно, связаны с доступом к базе данных. Если вы обнаружите, что это так, вы можете попробовать более быстрые накопители, Raid 0, более быстрые контроллеры накопителей и т. Д. Возможно, вы даже захотите создать базу данных на твердотельном накопителе и затем скопировать ее после создания на традиционный жесткий диск. привод. Они должны быть намного быстрее для поведения произвольного доступа, которое вы можете ожидать от mysql в файловой системе, хотя я понимаю, что вы со временем «изнашиваете» их. Тем не менее, вы можете получить Терабайт Твердотельного хранилища менее чем за 10 тысяч долларов.
Также внимательно посмотрите на оптимизацию процедуры вставки. Отключение индексов во время вставок, как вы упомянули, хотя и не остановит постепенное замедление, должно значительно ускорить общую процедуру. Я беру из вашего описания, что у вас есть какая-то логика сценария вставки, которая выбирает и вставляет, а не простая ЗАГРУЗКА плоского файла. Вы делаете три разных запроса на одну вставку, возможно, многократно отключая данные между вашим клиентом и базой данных. Особенно обратите внимание на выборочный диапазон и убедитесь, что один только этот запрос не имеет плохих характеристик производительности для размера таблицы.
Другая возможность может заключаться в том, чтобы израсходовать гораздо больше оперативной памяти при проблеме и использовать ее в качестве дискового кэша. Если та «другая таблица», в которой вы используете эти диапазоны, не изменяется во время вашего insertfest, возможно, вы можете получить это в памяти, чтобы сократить поиск диска, если вы определите, что время поиска действительно ограничивает производительность.