Ineffizienter SQL-Query
-
Hallo,
wir haben zuletzt bemerkt, dass WP-Worthy ziemliche Last auf dem Datenbankserver erzeugt. Zugegeben, unsere WordPress-Installation dürfte zu den gr??eren geh?ren, aber das sollte an sich egal sein, bzw. gerade hier ist Performance wichtig. Exemplarisch ist uns dieser Query aufgefallen:
SELECT "1" AS siteID, userid, COUNT(DISTINCT p.ID) AS reportable FROM
wp_worthy_markers
wm,wp_posts
p LEFT JOINwp_postmeta
pm ON (p.ID=pm.post_id AND pm.meta_key="worthy_counter") LEFT JOINwp_postmeta
pmi ON (p.ID=pmi.post_id AND pmi.meta_key="worthy_ignore") LEFT JOINwp_postmeta
pml ON (p.ID=pmi.post_id AND pmi.meta_key="worthy_lyric") WHERE NOT wm.postid
IS NULL AND wm.siteid
="1" AND wm.postid
=p.ID
AND p.post_type IN ("post","page") AND (pmi.meta_value IS NULL OR pmi.meta_value="0") AND ((wm.status
="3" AND (CONVERT(pm.meta_value
, UNSIGNED INTEGER)>="1800" OR pml.meta_value="1")) OR (wm.status
="2" AND (CONVERT(pm.meta_value
, UNSIGNED INTEGER)>="10000"))) GROUP BY useridAuf einem kleinen Cloud-Server l?uft der Query hier ~500 Sekunden, auf einer gro?en Maschine (die aber parallel schon ordentlich Last hat) immer noch ~300 Sekunden.
Auf kleineren Sites ist der Query deutlich schneller, aber immer noch im einstelligen Sekunden-Bereich.
Vielleicht k?nnt ihr an dem Query noch was machen (oder ihn in eine Liste einzelner Queries aufteilen).
Danke und viele Grü?e!
- The topic ‘Ineffizienter SQL-Query’ is closed to new replies.