@beduin01

Как увеличить скорость скрипта работающего с БД?

Есть скрипт на Python, который берет данные из одной БД, проверяет есть ли они во второй БД. Если их там нет (проверка по GUID) то вставляет их туда.

Проблема в том, что скрипт работает очень медленно. Думаю как повысить скорость его работы. Первое что приходит на ум -- сделать вборку по ID, разбить их на две половины и потом в два потока проверять гуиды в другой БД. Но может есть варианты получше?

На всякий случай уточню, что БД не идентичны и и нужно синхронизировать только определенные поля.

БД PostgreSQL
  • Вопрос задан
  • 454 просмотра
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Возьмите профилировщик и посмотрите, на чём именно теряете время.

О каком классе СУБД вообще речь?
Например, если речь о транзакционной РСУБД, строки объёмные, то можно сделать так:
create temporary table updatetable(guid uuid not null)
пачками этак по 1000 guid вычитываете guid'ы из источника и записываете в эту временную табличку.
select guid from updatetable where not exists (select 1 from normaltable where normaltable.guid = updatetable.guid)
Так получили список guid, которых в целевой БД нет. Сходили в источник за полной версией всех данных этих guid, пачками записали в целевую БД.
Ответ написан
sim3x
@sim3x
Есть и получше
Соединить две БД в одну или связаться их на уровне СУБД
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы