phpbar.de logo

Mailinglisten-Archive

AW: [php] Generelle Frage zum Index

AW: [php] Generelle Frage zum Index

ANGEL Harald harald.angel at egston.com
Fre Nov 18 11:21:46 CET 2005


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