Mailinglisten-Archive |
Hallo! Ja vielen Dank, eigentlich macht das ja auch Sinn. Natuerlich liegt da ein Compound Index drauf - in der Zwischentabelle sind die beiden Spalten ja zusammengesetzter PK... 50 war auch etwas uebertriieben - 10 sind ja wohl auch ausreichend - wer trinkt schon soviel verschiedenes :) Ist der Query Optimizer von Mysql denn so schlau, die Joins als erstes auszufuehren, die am wenigsten Ergebnisse versprechen? gruesse, Ilja Andreas Müller wrote: >Hallo Ilja, >an sich ist dein Ansatz schon richtig. Er lässt sich nur unter anderen >Einschränkungen beschleunigen: > >SELECT personen.id >FROM personen >INNER JOIN trinktgerne tg1 ON ( tg1.id_personen=personen.id AND >tg1.id_getraenke=1) >INNER JOIN trinktgerne tg2 ON ( tg2.id_personen=personen.id AND >tg2.id_getraenke=2) >INNER JOIN trinktgerne tg3 ON ( tg3.id_personen=personen.id AND >tg3.id_getraenke=3) > >Wichtig ist hier möglichst ein kombinierter Index >trinktgerne(id_personen,id_getraenke) > >Die Einschänkung liegt in der maximalen Anzahl von Tabellen die innerhalb >einer Abfrage verwendet werden dürfen. Den SQL Quelltext kann man ja >generieren aber bei 30 Getränken innerhalb einer Abfrage sollte dann Schluss >sein. > >Gruß, >Andreas > > > > -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive