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 FROMwp_worthy_markerswm,wp_postsp LEFT JOINwp_postmetapm ON (p.ID=pm.post_id AND pm.meta_key="worthy_counter") LEFT JOINwp_postmetapmi ON (p.ID=pmi.post_id AND pmi.meta_key="worthy_ignore") LEFT JOINwp_postmetapml ON (p.ID=pmi.post_id AND pmi.meta_key="worthy_lyric") WHERE NOT wm.postidIS NULL AND wm.siteid="1" AND wm.postid=p.IDAND 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.