Я пытаюсь загрузить данные из MySQL (5.7.22-22-log) через Spring Batch.Есть около 200 миллионов строк.Проблемы в том, что
- , если я загружаю хотя бы 100M строк, это занимает ~ 12 минут, что слишком долго. Сбой Spring Batch с чем-то вроде
HikariPool-1 -Обнаружено голодание потока или скачок тактовой частоты
или
HikariPool-1 - соединение com.mysql.jdbc.JDBC4Connection@7fece665, помеченное как разорванное из-за SQLSTATE (08S01), ErrorCode(0) com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: сбой линии связи
если я загружаю все строки, то через некоторое время mysql заканчивается сообщением
Killed
Теперь я пытаюсь просто загрузить столбец с идентификатором-s, но на самом деле мне нужно добавить пару соединений, и это не выглядит как упрощение для запроса.
Как это можно решить в целом?
Может быть, я могу скачатьчастично?Ну, я уже использую параметры размера выборки и размера чанка, но я предполагаю, что они применяются после выполнения запроса, когда мой запрос еще не может быть выполнен.
Я имею в виду загрузку частично и сделать это вручную, как выбор данных с этиминтервал id-s, затем следующий и т. д.
Но у меня есть работа cron, которая должна выполнять всю работу.Я должен как-то запланировать подпрограммы и объединить результаты.
Может быть, есть более продвинутые методы?