Magento Datenbank Optimierung – Teil 2

Nachdem wir in der letzten Woche (Magento Datenbank Optimierung – Teil 1) die Grundlagen für einen schnellen Magento-Shop geschaffen haben zeigen wir Euch heute weitere Möglichkeiten der Optimierung.

In einem aktuellen Projekt (ca. 50.000 Besuchern, 700.000 Seitenaufrufen und knapp 1000 Checkouts pro Tag) konnten wir durch Deaktivierung der Log-Funktionen 1 – 1,5 CPU-Kerne auf dem Datenbankserver einsparen. 

Die Änderungen aus Teil 1 sorgen für eine aufgeräumte Datenbank, allerdings loggt Magento nach wie vor jeden Zugriff in den entsprechenden Tabellen und löscht diese nach einigen Tagen wieder. Beide Vorgänge verbrauchen CPU-Ressourcen die wir sinnvoller einsetzen können, daher deaktivieren wir die Log-Funktionen heute komplett.

Deaktivierung über das Backend – Lösung mit Hindernis

Magento bietet Out-of-the-Box einige Möglichkeiten die Log-Funktionen zu deaktivieren. Am einfachsten ist es das Magento Backend zu benutzen:

System -> Konfiguration -> Erweitert -> Modulausgaben

Hier setzt Ihr Mage_Log auf Deaktivieren.

Die Deaktivierung über das Backend hat einen entscheidenden Nachteil: Es werden alle internen Log-Funktionen deaktiviert, somit funktionieren die Entwickler- und Extension-Logs auch nicht mehr.

MySQL Storage Engine BLACKHOLE – Das schwarze Datenloch!

Technisch etwas anspruchsvoller aber eleganter ist die Änderung der MySQL Storage Engine der Log-Tabellen auf BLACKHOLE. BLACKHOLE ist wie der Name schon sagt ein schwarzes Loch, allerdings nur in digitaler Form und wird daher „nur“ Euren Daten gefährlich.

ALTER TABLE log_url ENGINE = BLACKHOLE;
ALTER TABLE log_url_info ENGINE = BLACKHOLE;
ALTER TABLE log_visitor ENGINE = BLACKHOLE;
ALTER TABLE log_visitor_info ENGINE = BLACKHOLE;

Das oben gezeigte Query müsst Ihr direkt auf der MySQL-CLI oder mit Hilfe von phpMyAdmin über den Reiter „SQL“ abfeuern. – Achtet unbedingt auf die richtige Datenbank Auswahl und die korrekten Tabellennamen im SQL-Query!!!

Sobald das SQL-Query ausgeführt wurde sind die Log-Tabellen leer und sämtliche neu zu schreibende Log-Daten werden sofort verworfen.

Die BLACKHOLE-Lösung hat einen entscheidenden Vorteil gegenüber der Backend-Lösung da aus Magento-Sicht nach wie vor alle Log-Funktionen aktiv sind. Die Entwickler- und Extension-Logs könnt Ihr nutzen, an die Log-Tabellen gesendete Daten werden allerdings nicht verarbeitet und verschwinden direkt in unserem schwarzen Loch. Ganz ohne die CPU oder unsere Speichermedien zu belasten! 😀

In der nächsten Folge (Magento Datenbank Optimierung – Teil 3) zeigen wir Euch zwei kleine aber sehr wirkungsvolle SQL-Querys zur Optimierung der Magento Datenbank.

One Response to “Magento Datenbank Optimierung – Teil 2”