Dauer von "left join"

tutorialdude

Grünschnabel
Ich habe eine Tabelle (T1) mit Personen und in einer anderen Tabelle (T2) sind teilweise Zusatzinfons zu den Personen.
Im Moment frage ich Personen aus T2 ab und verbinde T1 und T2 mit einem LEFT JOIN, um ggf. auch die Zusatzinfo zu bekommen.
Aber leider dauern die Abfragen immer um die 6-8 sek., wodurch sich das Skript nur sehr bedingt verwenden läßt.

Weiß jemand, wie ich die Zeit verkürzen könnte, durch einen anderen Lösungsweg oder durch einen Abänderung des JOIN Befehls? Wichtig ist, dass ich alle Personen aufgelistet bekomme und nicht NUR die mit Zusatzinfos!

Danke
 
so viel ich weiss sind WHERE Verknüpfungen schneller als JOINS. Ansonsten müsstest du vielleicht noch einen zusätzlichen Index setzen (Primary Keys haste du hoffentlich).

wenn das nichts bringt, kannst du ja mal die Abfrage posten.
 
aber hoffentlich hast Du jetzt nicht überall einen index erzeugt.
index nur dort wo es oft zur abfrage kommt z.B. where bzw. gleich bei den joins
 
klar,
habe nur auf den Spalten einen Index gesetzt, die ich für den LEFT JOIN brauche.

Vorteile des Index ist mir jetzt klar! Aber wo liegen die Nachteile, wenn ich jetzt zu häufig einen Index setze?
 
richtig sobald daten des index geändert, gelöscht oder hinzugefügt werden dauert es länger.
index sind wie bäume aufgebaut.
schaue dir auch mal die index regeln an.
irgendwie ist es so wenn Du einen index über spalte1,spalte2 erstellst, dann brauchst Du keinen mehr für spalte1 alleine mehr.
einfach mal in einem buch oder onlinebuch schauen
 
Das Löschen dauert aber nicht länger. ich hatte mal eine Tabelle, die war etwa 200MB gross. Ohne Index hätte es Stunden gedauert, die Daten zu löschen. Mit ging es ziemlich flott ;-)
 

Neue Beiträge

Zurück