Есть скрипт на Python, который берет данные из одной БД, проверяет есть ли они во второй БД. Если их там нет (проверка по GUID) то вставляет их туда.
Проблема в том, что скрипт работает очень медленно. Думаю как повысить скорость его работы. Первое что приходит на ум -- сделать вборку по ID, разбить их на две половины и потом в два потока проверять гуиды в другой БД. Но может есть варианты получше?
На всякий случай уточню, что БД не идентичны и и нужно синхронизировать только определенные поля.
Возьмите профилировщик и посмотрите, на чём именно теряете время.
О каком классе СУБД вообще речь?
Например, если речь о транзакционной РСУБД, строки объёмные, то можно сделать так:
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: нельзя( может я не правильно понял, но у нас нельзя их сделать 1к1 т.к. мы не можем в тестовой среде использовать рабочие данные (безопасность и все дела)
beduin01: я предлагаю тебе дополнить вопрос уточнением, что речь идет о какой-то странной процедуре создания слепка рабочей БД для использования в виде тестовой БД