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!!