phpbar.de logo

Mailinglisten-Archive

Query Optimierung "Neueste Beitraege meiner Freunde"

Query Optimierung "Neueste Beitraege meiner Freunde"

ilja ibekowies at shavingkiwis.de
Fre Apr 13 18:03:40 CEST 2007


Hallo Liste,

Folgendes Szenario:

Tabelle "Freunde" bestehend aus "UserIdSource" und "UserIdTarget"
Tabelle "Beiträge" bestehend aus "Id", "Text", "Datum" und "UserId"

nun möchte ich alle Beitraege meiner Freunde haben, sortiert nach Datum 
absteigend...
meine Id ist beispielsweise 77

SELECT * FROM
   Beiträge B INNER JOIN Freunde F ON (F.UserIdTarget = B.UserId AND 
F.UserIdSource = 77)
ORDER BY B.Datum DESC

Ich habe einen Index ueber zwei Spalten auf der Tabelle Beiträge: 
(UserId,Id)
Und auf der Freunde Tabelle einen Index: (UserIdSource,UserIdTarget) und 
andersrum.

Die Freunde Tabelle ist sehr klein, die Beitraege Tabelle ist riesig.
Es ist also richtig wenn Mysql erst die Freunde herausfindet und an 
dieses Ergebnis die  Beitraege joined...

Leider wird der Index der Beitraege Tabelle nicht zum sortieren benutzt...

Kann ich irgendwie den USING TEMPORARY, USING FILESORT wegbekommen?


grueße, Ilja
____________
Virus checked by G DATA AntiVirusKit
Version: AVK 17.3957 from 13.04.2007
Virus news: www.antiviruslab.com


_______________________________________________
Allgemeine Infos zur Liste: http://www.4t2.com/mysql/
Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de

php::bar PHP Wiki   -   Listenarchive