Mailinglisten-Archive |
Hallo nochmal, Ich muss die die Query erweitern damit mir Detailinformationen über das Produkt mit der entsprechenden ID zurückliefert. Die Anzahl der joins wird schlussendlich bei 5-8 liegen. Deshalb ist es hier nicht so relevant. Ich habe auch folgende Fälle durchgetestet: FALL1: select distinct t1.id from tabelle t1 inner join tabelle t2 on t2.id=t1.id and (t2.kodex=5 or t2.kodex=6) inner join tabelle t3 on t3.id=t1.id and (t3.kodex=2) FALL2: select distinct t1.id from tabelle t1 inner join tabelle t2 on t2.id=t1.id and (t2.kodex=5 or t2.kodex=6) inner join tabelle t3 on t3.id=t1.id where t3.kodex=2 Ausführungszeit in beiden Fällen 0,20 ms! Daraus schliesse ich dass der Optimierer aus beiden Fällen denselben erstellt! Grüße Uli >Hallo Michael, > >> Wenn kodex 2 häufiger ist würde ich den ins where nehmen, wenn "5 oder 6" >> häufiger ist, dann eben die. (sollte eigentlich auch der optimizer >> automatisch machen aber nun ja...) > >Das Problem dabei ist das diese Auswahl was mit wem übereinstimmen soll von >willkürlichen Benutzereingaben abhängt und somit im Vorfeld aufwendige >Optimierungen gemacht werden müssten. Gut man könnte sich eine >Häufigkeitstabelle machen und danach dann die Query aufbauen. Sowas hab ich >mal bei Interbase und deren blöden Optimizer gebaucht. Wenn parallel aber >Daten reinlaufen fragt sich ob sich der Aufwand der Datenpflege lohnt. Ist >aber ne weitere Optimierungsmöglichkeit. > -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive