Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 13.04.2006, 21:18
insanic! insanic! ist offline
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 03.11.2005
Beiträge: 175
insanic! befindet sich auf einem aufstrebenden Ast
Standard Queries und Performance

Hi,

habe mal wieder ne Frage zu 2 Queries, die langsam sind: Wie man diese verbessern kann!

1. Query:
Code:
SELECT 		
			/*** AUS DER TABELLE OWN_CONTENT ***/ 
			o.id 					AS oid, 
			o.time 					AS otime, 
			o.disNaviReferer 		AS showR, 
			o.disNaviToplist 		AS showT, 
			o.disNaviPartner 		AS showP, 
			o.type, 
			o.used, 
			
			/*** AUS DER TABELLE LINK_CATS ***/ 
			c.id 					AS cid, 
			c.name 					AS catname, 
			
			/*** AUS DER TABELLE LINK_ENTRIES ***/ 
			e.id 					AS eid, 
			e.beschreibung 			AS linkdesc, 
			e.flag, 
			e.freigeschaltet 		AS etime, 
			e.previewPic 			AS prev, 
			e.hits 
FROM 
			own_content o 
LEFT JOIN 
			link_entries e 
				ON e.link = o.id 
LEFT JOIN 
			link_cats c 
				ON c.id = e.cat_id 
ORDER BY 
			oid desc 
LIMIT 		0, 20
Wenn ich diesen per Explain in PhpMyAdmin ausführe, bekomme ich folgende Ausgabe:


Indizes sind gesetzt auf:
- link-cats: id
- link_entries: id, cat_id, freigeschaltet, flag
- own_content: id

Teilweise kommen noch ein paar Where-Klauseln dazu (aber der Query so wie er da steht ist schon lahm).




2. Query:
Code:
SELECT 		count(o.id) AS anz 
FROM 		own_content o 
LEFT JOIN 	link_entries e 
			ON e.link = o.id 
LEFT JOIN 	link_cats c 
			ON c.id = e.cat_id
Selben Indizes.
Wenn ihr mich hier nun fragt, warum ich die LeftJoins drin habe, wenn ich doch eh nur o.id zählen will: Weil ich teilweise eine Where-Klausel nutzte, in der ich c.id und e.flag benötige!

Was kann ich nun verbessern?

Danke!!
Mit Zitat antworten
Sponsored Links