Warnung
Aufgrund von Skalierungsproblemen und anderen Sonderfällen wird der MySQL-/Mariadb-Abfrage-Cache nicht mehr empfohlen. Wir empfehlen dringend sicherzustellen, dass das Caching von einer Anwendung gehandhabt wird Ebene statt.
Übersicht
In den meisten Linux-Systemen ist die standardmäßig installierte MySQL-Datenbankinstanz häufig auf einen sicheren Parameterbereich konfiguriert, um einen stabilen Betrieb zu gewährleisten. Die Abfrage-Caching-Einstellungen sind in der Regel nicht aktiviert oder sehr konservativ eingestellt. Als Ergebnis dieses Konservatismus verwendet der Datenbankzugriff wenig Systemspeicher, um wiederholte Abfragen zwischenzuspeichern. Indem der Cache aktiviert und an die Anwendungsanforderungen angepasst wird, sind Verbesserungen in den meisten Anwendungen sichtbar, insbesondere in Magento eCommerce Stores.
Für erste Tests wurde als Ausgangspunkt eine Cache-Größe von 32M festgelegt. Vor allen Änderungen werden die Datenbank-Cache-Parameter in /etc/my.cnf gespeichert wurden konfiguriert als:
query_cache_limit 1M query_cache_size 0 query_cache_type ON
Ändern der Parameter
Um Änderungen vorzunehmen, muss die Datei /etc/my.cnf wurde bearbeitet, um die folgenden Parameter aufzunehmen, und die Datenbank wurde neu gestartet. Nach Änderungen meldet die Datenbank folgendes:
query_cache_limit 2M query_cache_size 32M query_cache_type ON
Testen
Um unsere Änderungen zu testen, haben wir zunächst einen Magento eCommerce-Shop mit installierter Standard-Demo-Produktdatenbank installiert. Wir haben den Abruf jedes Produkts mithilfe von Belagerung zeitlich festgelegt. Durch die Erhöhung der Cache-Größe in der Datenbank wurde die Antwortzeit der Site um weitere 200 ms verkürzt. Diese einfache Änderung würde darauf hindeuten, dass es möglicherweise mehr Raum für Verbesserungen bei den Parametern und dem Layout des Datenbank-Subsystems gibt, um es speziell für die Verwendung mit Magento zu optimieren, wobei zu beachten ist, dass die Optimierung für Magento bestenfalls eine knifflige Aufgabe sein kann!
Fallen!
Das beliebte MySQLTuner-Skript (wie in unserem Leitfaden zur MySQL-Leistungsoptimierung und -optimierung beschrieben) wurde ausgeführt und zeigte an, dass eine Änderung der Thread-Anzahl vorteilhaft wäre, diese Änderung führte jedoch zu einem Einbruch der Leistung um 290 ms!
Schlussfolgerung
Die MySQL-Datenbankkonfiguration ist im Auslieferungszustand gut, könnte aber deutlich besser sein. Das Erhöhen des Caches lieferte eine sofortige positive Reaktion. Zusätzlich zu den Verbesserungen der Datenbankleistung gibt es auch verschiedene Cache-Technologien wie Memecached und Redis, die die Leistung verbessern, indem häufig referenzierte Daten zwischengespeichert werden.