RIGHT OUTER JOIN zu langsam

Der MySQL Datenbank-Server für Internet- und Intranet-Lösungen.

RIGHT OUTER JOIN zu langsam

Beitragvon Florian » Mo 22 Apr, 2002 22:06

<HTML>Hallo!
Ich habe ein Problem mit folgendem SQL Konstrukt:

SELECT Sammelgebiete.sID AS 'sID', Sammelgebiete.Name, count(*) AS 'anzahl', MAX(Kleinanzeigen.Datum) AS 'letzte_Anzeige' FROM Kleinanzeigen RIGHT OUTER JOIN Sammelgebiete USING(sID) GROUP BY sID ORDER BY Sammelgebiete.sortName ASC

Die Tabellen dazu sehen folgendermaĂźen aus:

Sammelgebiete:
==============

Felder:
- sID
- Name
- sortName

#Daten: ~ 550

Kleinanzeigen:
==============

Felder:
- ID
- sID
- Datum

#Daten: ~ 5000

In der Tabelle Sammelgebiete stehen natĂĽrlich solche mit Namen und ID. In der Tabelle Kleinanzeigen stehen die Kleinanzeigen fĂĽr die Sammelgebiete. Es ist aber auch Sammelgebiete ohne Anzeigen.

Ich hätte gerne eine Auflistung aller Sammelgebiete mit Anzahl der Anzeigen darin und dem Datum der zuletzt aufgegebenen Anzeige.

Leider ist die Laufzeit bis das Ergebnis fertig ist enorm hoch. Zu hoch fĂĽr eine Webapplikation. Es scheint, als ob doch irgendwo das kartesische Produkt gebildet wird. Ich weiss nur nicht wo...
Hat jemand eine Idee wie ich die 55 Sek. Laufzeit drĂĽcke. Die MAX und count(*) Funktionen haben damit wenig zu tun. Damit schaffe ich gerade ne halbe Sekunde weniger.

Ich hab noch die umständliche Brutforce Methode im Hinterkopf die kommt aber erst zum Schluss.

Ein LEFT [OUTER] JOIN braucht nur eine halbe Sekunde liefert aber nur die Sammelgebiete, in denen es auch Anzeigen gibt.

Danke schon mal im Vorraus.

GrĂĽĂźe
Florian
</HTML>
Florian
 

RE: RIGHT OUTER JOIN zu langsam

Beitragvon Chris » Do 06 Feb, 2003 13:46

Bitte gib mal die Erstellungsscripte der Tabellen an.

Bsp:

create table kleianzeigen(
bla int irgendwas
text irgendwas
);

Dann schaun wir mal ;-)

Chris
Chris
 


ZurĂĽck zu MySQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste