Здесь проблема в том что при использовании `text` база данных не знает какой размер данных будет всталяться в поле и по этому не может действовать эффективно. Я всегда избегаю использовать `text` кроме случаев где нет других вариантов.
Попробуйте замениить `text` на `varchar(n)`
Что происходит если писать по одной строке?
Пожалуйста опубликуй серуктуру таблицы, возможно есть индексы или триггеры, которые замедляют вставку данных
Пожалуйста опубликуйте схемы ваших таблиц и минимальный набор данных. Я предполагаю что речь идет о конфигурации внешних ключей таблиц, но мне сложно угадывать не видя самих таблиц
Хорошо, знчит улажите значения для пустых полей:
INSERT INTO blue_table (
country_id,
zone_id,
geo_zone.id,
date_added,
date_modified
) SELECT
country_id,
zone_id,
0 as geo_zone.id,
now() as date_added,
'0000-00-00 00:00:00' as date_modified
FROM green_table;
В вашем случае я могу посоветовать отдельный Linux-сервер для базы данных. Если это только база данных журнала, вы можете использовать специализированные решения, такие как Influx или ClickHouse.