Оптимизировать миграцию таблицы из csv в pg с помощью самостоятельного обновления

У меня есть CSV размером 1,5 ГБ, содержащий около 11000000 записей, и я заполняю эти данные в таблицу Postgres

Что я пробовал до сих пор:

set local work_mem = '4000MB';

copy truck_dispatch_logs(
    old_id,ms_truck_id,issue_date, ms_site_id, ms_product_id, act_dispatch, schedule_time, draw, truck_no, adjusted_time, default_schedule_time, log_date_time,location
) 
FROM '/home/truckdispatchlog.csv' 
DELIMITER ',' CSV HEADER;

Запрос возвращен успешно: затронуто 11696539 строк, 01:40: время выполнения 3635 часов.

CREATE INDEX truck_dispatch_logs_ms_truck_id ON truck_dispatch_logs(ms_truck_id);
CREATE INDEX truck_dispatch_logs_truck_id ON truck_dispatch_logs(truck_id);

UPDATE "truck_dispatch_logs" as td
SET new_truck_id = temp.id 
from trucks as temp
where td.ms_truck_id = temp.old_id;

Этот запрос занимает более 3 дней, поэтому я остановил его.

В trucks В таблице есть old_id типа integer и id типа UUID

Вот структура таблицы:

"truck_dispatch_logs"

"ms_truck_id";"integer"
"truck_id";"uuid"
"schedule_time";"timestamp without time zone"
--some more irrelevant columns

"грузовые автомобили"

"id";"uuid"
"old_id";"integer"
--some more irrelevant columns

Что я могу сделать, чтобы улучшить весь этот процесс?

0 ответов

Другие вопросы по тегам