Ich versuche, einige Daten aus einer Tabelle zu finden, die nicht in einer anderen Tabelle ist.Optimieren einer linken Verknüpfung
Ich habe versucht, verschiedene Lösungen zu verwenden, aber mein Problem ist immer die Leistung (Tabelle_a hat ~ 100 000 Zeilen und Tabelle_b hat ~ 5,8 Millionen Zeilen).
Gibt es eine schnelle (er) und/oder (mehr) effektive Möglichkeit, das zu tun?
Vielen Dank im Voraus ...
SELECT
*
FROM
table_a a
LEFT JOIN
table_b b ON b.field_one = a.field_one
WHERE 1
AND b.id IS NULL
Sie könnten Indizes für die beiden Tabellen einrichten, dies würde die Leistung des Joins unterstützen. Hast du das gemacht? –
Zeigen Sie Ihre 'create table' Anweisungen für beide Tabellen bitte – Alex
Verwenden Sie nie Select *. In diesem Fall fügen Sie viele unnötige Spalten hinzu, da Sie in Tabelle b keine Daten haben, die Spalten jedoch zurückgeben. Das verbraucht Ressourcen. SELECT * ist ein SQL-Antipattern und sollte nicht im Produktionscode erscheinen. – HLGEM