kiddle, что у тебя в тексте? Не вижу... Там надо analyze table [table name]... А для запроса - explain select...
Это первое. И второе. Что меня смущает. Ты уверен что мы воюем именно с select?
У тебя 2 конфигурации на одной из них процесс ETL идет 20 минут а в другой - более суток.
Я здесь вижу что проблемой может быть также insert. Он зависит от многих параметров но
главное - от того destincation куда ты вставляешь 2 млн строк. Всяко тут может быть.
Проверяй эту версию.
И помни что любой SQL запрос select имеет 2 фазы. Первая фаза - это execution. Это пока висят
песочные часы. И второе это fetch - когда БД уже начинает выдавать строки на экран. Новички
часто этого не понимают и считают что им интересен только execution. А в твоей задаче
в миграции строк важны обе фазы. Поэтому твои эксперименты по select должны включать
не визуальную оценку (как только получил 1 page). А ПОЛНЫЙ подсчет всех 2 млн строк.
Это если ты хочешь играться с оптимизацией select.
Ping между New-York и Los-Angelos составляет примерно 70мс. Тоесть у вас еще очень даже неплохие показатели времени. У вас работала база внутри докера. Вот и пускай там работает всегда. У вас архитектура такая. Вы разрабатывали и тестировали исходя из таких вот условий.
Возвращайте все взад как было.
И вам надо думать над архитектурой. Что у вас в запросах. Подумайте над когерентными запросами. Например с одной страницы с одно пользователя будет прилетать все время 3 типа запроса. В одном и том-же порядке. Попробуйте их объединить в батч. Оформить как хранимую функцию и получать сразу все 3 ответа за 1 раз. Тоесть у вас вместо трёх блокирующих TTFB будет один TTFB.
Попробуйте кешировать данные через nginx. В большинстве случаев кеширование является спасением для таких вот нагруженных систем. Кеширование - это компромисс. Какие-то данные будут стареть в кеше. Это расплата.
Надо понять соглашение о вызовах. Как эта либа вызывалась. Какие в ней функции?
И вообще имеет ли смысл тратить ресурсы в переписывание? Может проще создать новый софт.
Что там по комментариям? Упоминается ISO 1745. Это телекс-протокол. Что нам нужно от этого протокола?
Какие функции? Найти им аналог в оперсорце реально? Вот такие вопросы.
Вы просто таким постом обесцениваете Котлин низводя его до простого конвертера. А если конвертить - то
зачем вообще нужна смена языка? Оставайтесь на Java.