Mailinglisten-Archive |
Sebastian Mendel: > generall hilft immer ein > EXPLAIN [DEINE ABFRAGE] > (geht auch über phpMyAdmin: [SQL Erklären]) Besten Dank für den Tipp! Eine Frage hab ich noch zur HAVING - Clausel. Kann man da keine Indizes verwenden? Ich hab zB diesen SQL um meine Charts anzuzeigen: SELECT charts_lieder. * , SUM( charts_votes.punkte ) AS spunkte, user.nickname, user.farbe FROM charts_lieder LEFT JOIN charts_votes ON charts_lieder.id = charts_votes.liedid LEFT JOIN user ON charts_lieder.userid = user.userid GROUP BY charts_lieder.id HAVING charts_lieder.kw = '46' AND charts_lieder.jahr = '2005' AND charts_lieder.art =1 AND charts_lieder.rang <> 0 AND charts_lieder.online =1 ORDER BY charts_lieder.rang Dieser SQL dauert relativ lange (5-10sec) Ich hab diesen Index angelegt: ALTER TABLE `charts_lieder` ADD INDEX `kw_jahr_art` (`kw`,`jahr`,`art`) Mach ich ein EXPLAIN sagt der aber, der verwendet den nicht. Wie kann man diese Abfrage anders Tunen? Danke für Tipps und schönes Wochenende schon mal! Harald
php::bar PHP Wiki - Listenarchive