• 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 userid
    

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

    • This topic was modified 2 years, 10 months ago by marcusj.
Viewing 7 replies - 1 through 7 (of 7 total)
  • Plugin Author tiggerswelt

    (@tiggerswelt)

    Hallo Marcus,

    vielen Dank für Dein Feedback! Es gibt in Worthy durchaus ein paar “teure” Datenbank-Abfragen. Die meisten davon haben wir in Cron-Jobs ausgelagert und versuchen damit so sparsam wie m?glich umzugehen. Wenn wir Potential für Optimierung sehen, dann nutzen wir das natürlich auch gerne.

    Das dieser Query hier Erw?hnung findet hatte mich auf den ersten Blick überrascht, denn eigentlich nutzt der durchweg Indizies und sollte nicht allzu viele Daten verarbeiten.
    Bei einer kurzen Analyse musste jedoch auffallen, dass sich hier ein Fehler eingeschlichen hat und die Abfrage deswegen einen sog. Full Table Scan auf der Tabelle posts_meta ausl?st – und das ist teuer.

    Wenn Du es Dir zutraust, schau doch mal in der Datei wp-worthy.php in Zeile 2486. Dort steht die folgender Inhalt:

    'LEFT JOIN%tablePostMetapml ON (p.ID=pmi.post_id AND pmi.meta_key="worthy_lyric") ' .

    Hier sind die beiden “pmi” falsch und müssten “pml” lauten. Vielleicht kannst Du das testweise selbst tauschen?

    Ansonsten werden wir das auf jeden Fall als Bugfix in der n?chsten Version mitgeben.

    Grü?e aus Stuttgart,

    Bernd

    Thread Starter marcusj

    (@marcusj)

    Hallo Bernd,

    ja, das sieht besser aus, jetzt wird auch der Index genutzt. Das w?re mir evt. sogar selbst direkt aufgefallen, wenn pmi und pml sich nicht so ?hnlich sehen würden ??

    Danke erstmal!

    Plugin Author tiggerswelt

    (@tiggerswelt)

    Hallo Marucs,

    hei?t das, dass das Problem damit für euch gel?st w?re sofern die Anpassung in der offiziellen Version erscheint oder siehst Du hier noch Handlungsbedarf?

    Grü?e aus Stuttgart,

    Bernd

    Thread Starter marcusj

    (@marcusj)

    Hallo Bernd, aktuell sieht es wieder gut aus. Zumindest dieses Problem sollte damit vom Tisch sein.

    Plugin Author tiggerswelt

    (@tiggerswelt)

    Hallo Marcus,

    vielen Dank für das Feedback! Ich lasse den Thread noch etwas offen, damit unser Support-Bot hier Feedback geben kann sobald das in ein Release Einzug gehalten hat.

    Grü?e aus Stuttgart,

    Bernd

    Plugin Author tiggerswelt

    (@tiggerswelt)

    Hallo,

    unsere Entwickler haben das Ticket mit der Nummer #149 erfolgreich bearbeitet und geschlossen.

    Wir werden die Anpassungen mit der kommenden Version 1.6.4 ver?ffentlichen.

    Grü?e aus Endingen & Stuttgart,

    Dein Worthy-Team
    (vertreten durch unseren gro?artigen CI-Roboter)

    Plugin Author tiggerswelt

    (@tiggerswelt)

    Hallo,

    wir haben soeben die Version 1.6.4 ver?ffentlicht.

    In dieser Version sind ?nderungen vorhanden die diesen Support-Thread betreffen.
    Bitte aktualisiere Deine Worthy-Installation auf diese Version und prüfe kurz ob Dein Anliegen erfolgreich bearbeitet wurde.
    Konnten wir Dir weiterhelfen, schlie?e einfach diesen Thread. Sollte noch etwas offen sein, gib uns bitte kurz Feedback!

    Grü?e aus Endingen & Stuttgart,

    Dein Worthy-Team
    (vertreten durch unseren gro?artigen CI-Roboter)

Viewing 7 replies - 1 through 7 (of 7 total)
  • The topic ‘Ineffizienter SQL-Query’ is closed to new replies.