phpbar.de logo

Mailinglisten-Archive

query optimieren

query optimieren

Nikolas Hagelstein hagelstein at hauptsache.net
Fre Mar 28 19:10:34 CET 2003


Hi,

hat jemand von Euch ne Idee, wie sich folgende abfrage optimieren laesst ?
Im Prinzip dient sie dazu bestimmte daten eines artikels anzuzeigen und
zu visuallisieren, ob es in anderen tabellen (bild oder profil) noch min
einen ref. Datensatz
gibt.
Im moment benoetigt sie ca. 2sec :|

--
SELECT a.artnr_neu, a.wbez, h.name, a.okat, a.ukat, a.vk,
IF (
a.kurz != '', 1, 0
) AS iskurz,
IF (
a.lang != '', 1, 0
) AS islang,
IF (
ia.imgid IS NULL , 0, 1
) AS isimg,
IF (
pa.pid IS NULL , 0, 1
) AS isprof, rt.rank
FROM artdata a
LEFT JOIN hersteller h ON a.hersteller = h.id
LEFT JOIN img_to_art ia ON a.artnr_neu = ia.artnr
LEFT JOIN profkat_to_art pa ON a.artnr_neu = pa.artnr
LEFT JOIN rankingtotal rt ON a.artnr_neu = rt.artnr
GROUP BY a.artnr_neu
ORDER BY rt.rank DESC
LIMIT 0,15
---


explain gibt folgendes zurueck
---
h system PRIMARY NULL NULL NULL 0 const row not found
a ALL NULL NULL NULL NULL 14102
ia ref PRIMARY,artnr PRIMARY 14 a.artnr_neu 27 Using index
pa ref PRIMARY,artnr PRIMARY 14 a.artnr_neu 2 Using index
rt eq_ref artnr artnr 14 a.artnr_neu 1
----

Indizes sind soweit ich das sehe richtig gesetzt.
Ich hoffe das reicht fuer einen ersten Tip ansonsten stelle
auch gern noch mehr Informationen zur Verfuegung.

Die performancetips im Manuell hab ich bereits durchgeschaut, aber
leider bisher keinen Erfolg erzielen koennen.

Gruesse,
			niko


-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive