Wordpress: Langsame SQL Querys

  • Hallo Forum, Hallo Support,

    Mir ist aufgefallen, dass meine SQL Querys von Wordpress zu dem MYSQL Server sehr langsam sind. Wenn ich sie aber direkt via PHPmyadmin ausführe ist der MYSQL Server recht flott. Woran kann das liegen?


    Hier ein paar Vergleiche (zwei mit je einem Treffer, einer mit vielen ca. 600 Treffern)


    SQL
    1. SELECT * FROM wn_posts WHERE ID = 13 LIMIT 1

    Wordpress Query Monitor: 0,2029 Sekunden
    PHP My Admin: 0.0132 Sekunden


    SQL
    1. SELECT * FROM wn_dpProEventCalendar_calendars WHERE id = 1

    Wordpress Query Monitor: 0,1970 Sekunden

    PHP My Admin: 0.0040 Sekunden

    SQL
    1. SELECT option_name, option_value FROM wn_options WHERE autoload = 'yes'

    Wordpress Query Monitor: 0,1388 Sekunden
    PHP My Admin: 0.0716 Sekunden


    Die Zeiten sind ja nicht all zu schlimm, aber insgesamt summiert sich das ganz und wenn man als Admin an der Seite arbeitet nervt es ganz schön. Für den Anwender ist es ja meistens gecached da und dieser merkt nicht wirklich was von den Query Zeiten.


    Und nein die Datenbank ist nicht riesig:

    Code
    1. Datenbank Aufsteigend |Kollation |Tabellen |Datensätze |Daten |Indizes |Insgesamt |Überhang
    2. k87490_wildenatouren    |utf8_general_ci |33 |17.728 |15,9MiB |1,8 MiB |17,6 MiB |0 B


    Hat eventuell jemand Tipps ?

  • Kann den Beitrag leider nicht mehr bearbeiten...

    Hab nun Lokal auch nochmal die genau selbe Seite in einem Wordpress Docker aufgesetzt und komm bei den drei open Querys auf folgende Zeiten, kann da natürlich am Cache liegen die Zeiten :/


    Wordpress Query Monitor: 0,0012
    Wordpress Query Monitor: 0,0004
    Wordpress Query Monitor: 0,0081



    Lokal:
    pasted-from-clipboard.png
    NetCup:

    pasted-from-clipboard.png

  • Die Datenbankserver bei netcup laufen nicht auf dem selben Host wie der Webserver. Man hat also mutmaßlich Netzwerk-Latenz bei jedem SQL-Query.

    phpMyAdmin wird vermutlich die execution Time anzeigen, die der MySQL Server selber angibt (local execution time), wohingegen das WP-Plugin die selbst gemessene Zeit verwenden wird (inkl. Netzwerk-Overhead).


    Das erklärt auch warum es lokal schneller ist: Selber Host, kein echtes Netzwerk.


    Dennoch sind 1,8s nur für die Queries selbst mit einem MySQL-Server auf einem anderen System im LAN recht schlecht. Um die 0,2-0,4 sollte schon gehen (wenn ich meine eignen Tests richtig erinnere). Unter 0,1s (wie bei dir lokal 0,06s) wird man vermutlich mit einem "externen" MySQL-Server nicht kommen.

  • Kann natürlich sein, und auf dem Netcup MYSQL Server laufen natürlich auch mehr Instanzen als auf meinem Lokalen (nur WordPress und Nextcloud) trotzdem ist es meiner Meinung nach zu langsam gerade wenn der Admin jedes Mal 2 bis 8 Sekunden warten muss bis die Querys durch sind. Werde mal ein Ticket aufmachen und auch hierher verlinken. Eventuell ist da jemand auf dem SQL der Probleme verursacht und der Support kann was machen.

  • So um das ganze hier Abzuschließen :


    Query Times sind jetzt zwischen 0.5 und 0.8 für alle Anfragen. Bei einer Query braucht er noch 0.09 bis 0.12 und Query Monitor meckert dort zwar. Aber er holt auch ca. 1000 Zeilen muss mal gucken ob ich das optimieren kann und für was es benötigt wird (wird vom Theme geholt)

  • wp_options

    index auf die DB-Spalte "autoload" kann helfen.

    Hab ich mal eingelesen, dort heißt es:

    As a rule of thumb if 60-80% of the option_name keys are autoload = no values then an index is a good idea.

    Da ich 118 autoload:"no" aber 624 autoloard:"yes" habe sagt es ja eigentlich, ich sollte kein Index machen.


    Bin gerade noch dabei eventuell "tote" Plugins in der wp_options Tabelle zu finden, aber die Ladezeiten sind auf jedenfall sehr viel besser geworden.


    Edit:

    Aber da es mich gerade aus PHPMyadmin geschmissen hat ist mir gerade aufgefallen:

    Staging Seite vor dem Aufräumen der Datenbank: Tabellen: 77 Größe: 36.9 MB
    Aktuelle Staging Seite nach dem Aufräumen und optimieren: Tabellen: 33 Größe: 17.1 MB