Даже старые компьютеры 2010 года с жестким диском легко вставляют 1000 строк в секунду c. Но вы должны избегать плохого программного обеспечения / алгоритмов.
контрольный список:
a) дважды проверьте настройку БД. Например, режим разработки mysql - это дрянная ссылка на реальный сервер. Она имеет крошечные буферы, пулы и т. Д. c ... Виртуальная машина linux импортирует mysqldump в 10 раз быстрее windows ... просто в качестве примера ... Подготовьте сервер к тяжелой работе.
b) если бы вы поместили @Transactional на все, возможно, вы бы проходили много java стековых фреймов для каждой строки. Проверьте, ограничены ли вы процессором. Вы должны быть нормально связаны для такой вставки. Здесь вы делаете TXN для каждой строки ...
c) также не пытайтесь выполнить одну транзакцию из 90000 строк, это просто глупо. Я знаю, что нет, так держать. Возможно, просто полностью избегайте TXN, так как я не вижу выгоды для вашего случая.
Если вы можете избежать спящего режима, у вас есть несколько вариантов:
d) явно подготовленная на стороне сервера выписка предпочтительнее.
e) поверх подготовленного выписки используйте пакетное выражение (для начала можно набрать 20-100 раз, найдите подходящее место).
f) если вы действительно не унывая, и никто на вашем пути не будет жаловаться на то, что они не понимают, и блокирует ваш запрос на получение доступа в проклятом обзоре кода (!), вы можете mysql читать CSV напрямую, с готовой загрузкой файлы (ЗАГРУЗКА ДАННЫХ INFLE https://dev.mysql.com/doc/refman/8.0/en/load-data.html). У Postgress есть нечто эквивалентное. Большинство поставщиков должны. Как правило, вам придется хранить готовый файл CSV (правильные разделители и кавычки) на самом сервере БД, так что это, возможно, даже невозможно на удаленных БД. Но это удивительно быстро. Для этого почти стоит поставить микросервис загрузки файлов на экземпляр БД.
Надеюсь, это поможет.