MySQL/mariaDB Performance verbessern – query_cache_size anpassen

Manche Webentwickler, vor alem WordPress-Menschen, kennen folgenden Screenshot wahrscheinlich:

Was sagt uns das?

MySql/mariaDB speichern die Abfragen nicht zwischen – es wird also nix gecachet!

Dabei wär das so schön! 😀

MySQL könnte nämlich die Abfragen in einem eigenen Zwischenspeicher lagern und so ähnliche/gleiche Abfragen aus dem Cache fischen, und nicht gegen die Datenbank fahren müssen.

Wie aktiviere ich den MySQL-Cache mit query_cache_size?

Easy!

Einfach folgende Zeilen in die MySQL-Konfig schreiben, den MySQL-Server neu starten und done:

query_cache_type=1

query_cache_size=268435456

query_cache_limit=1048576

Cache und MySQL/MariaDB-Konfig in Plesk aktivieren und anpassen

  1. Zuerst muss man sich mit dem Plesk-Server per SSH verbinden, zb
    $ ssh root@155.666.77.88
  2. In das etc-Verzeichnis gehen:
    $ cd /etc
  3. Status der Datenbank-Konfiguration ansehen – also die Datei my.cnf ansehen:
    $ cat my.cnf

    Das schaut dann ca so aus:

    [mysqld]
    bind-address = ::ffff:127.0.0.1
    local-infile=0
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid#
    # include all files from the config directory
    #
    !includedir /etc/my.cnf.d

    Wir sehen hier, dass wir MariaDB und nicht mit MySQL arbeiten. Das ist wichtig! Später mehr 🙂

  4. Ändern der my.cnf mit Vim:
    $ vi my.cnf
  5. Dann geht man in den [mysqld]-Bereich. Wichtig, dass man noch nicht in den nächsten „Bereich“ geht. Der nächste Bereich wäre in unserem Beispiel zb [mysqld_safe]. Schreibt man darunter, befindet man sich schon in einer anderen Datenbank-Konfiguration!
  6. Mit dem Befehl
    *i

    kommt man in den Editierbereich und kann neue Zeilen einfügen und Zeilen in die Datei reinkopieren!

  7. Mit Druck auf die Taste ESC beenden wir die Bearbeitung.
  8. Mit dem Befehl
    :x

    speichern wir die Änderungen und beenden Vim

  9. Jetzt muss MySQL neu gestartet werden, das geht zb mit
    # sudo service mysql restart
    1. Oft kommt folgende Fehlermeldung:
      Redirecting to /bin/systemctl restart mysql.service
      Failed to restart mysql.service: Unit not found.
    2. Dann checken wir mal den mysql-Dienst
      # mysl
    3. Gibt es MySQL nicht als Dienst, kommt folgende Meldung
    4. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    5. Ok, also was benutzen wir? Das finden wir so heraus
      # systemctl list-unit-files | grep enabled | grep -iE '(sql|db)'
    6. Wir bekommen zb folgende Ausgabe:
      dbus-org.fedoraproject.FirewallD1.service enabled
      mariadb.service enabled
    7. Wir wissen jetzt also, dass wir MariaDB verwenden! Daher müssen wir diesen Dienst neu starten!
  10. MariaDB neu starten geht über folgende Befehle:
    1. # sudo service mariadb.service restart
    2. Oder auch über folgenden Befehl
      # systemctl restart mariadb
  11. Fertig!

Infos