Ich muss regelmäßig Daten in Tabelle 1 einfügen, die Fremdschlüsselbezug zu Tabelle 2 enthält. Und Tabelle # 2 ist ziemlich groß - etwa 200.000 Zeilen. Ich versuche, Zeilen zu überprüfen, die durch einfaches Entfernen dieser Zeilen in Tabelle # 1 für Fremdschlüssel eingefügt werden müssen, die definitiv nicht eingesetzt werden kann, und meine Abfrage sieht wie folgt aus:Schnell einfügen in Tabelle mit Fremdschlüsseleinschränkungen
DELETE FROM temp_table1
WHERE temp_table1.fk NOT IN (SELECT id FROM table2) AND
temp_table1.id_d IS NOT NULL;
Das Problem ist, diese Methode ist gaaanz langsam :(so gibt es eine „richtige“ Methode Zeilen in einer solchen Situation einfügen?
ich verwende Python3, Postgresql und psycopg2, wenn es darauf ankommt.
'... wenn es darauf ankommt.'Nein, das sollte keine Rolle spielen. Was * macht * zählt: Ihre Tabellendefinitionen einschließlich Schlüssel und Indizes. – wildplasser
@wildplasser Ok, table1 hat Feld "fk", das den Primärschlüssel "id" aus table2 referenziert, und Tabelle2 hat auch einen Index auf "id" Feld. –