Sonntag, 23. September 2012
Entschlackungskur für Serendipity
Bei mehreren Serendipity Installationen war mir in der Vergangheit aufgefallen, dass es immer länger dauerte bis die Seiten geladen und vollständig angezeigt wurden. Der Grund dafür ist ganz einfach - die Lösung ebenso.
Es gibt ein paar Tabellen in der Datenbank von Serendipitiy, die mit der Zeit immer größer werden. Das sind die Tabellen serendipity_visitor und serendipity_spamblocklog.
Bei lousigerblick war serendipity_visitor auf über sagenhafte 1.100.000 Millionen Einträge angewachsen und in serendipity_spamblocklog wurden rund 300.000 Datensätze erfaßt. Da wundert es nicht, dass die Datenbankanfragen sehr lange dauern und die Google Webmastertools eine Ladezeit von über 8 Sekunden bescheinigen.
serendipity_visitors und serendipity_visitors_count
Hinter den Tabellen serendipity_visitors und serendipity_visitors_count steckt das Statistik Plugin von Serendipity und die Funkion "Erweitertet Besucherstatistik". Leider wird die Datenbank nicht automatisch bereinigt, so dass die Tabellen enorme Größen erreichen können. Das Problem ist nun, dass bei jedem Seitenaufruf ein schreibender Zugriff auch diese beiden Tabellen erfolgt. Sind die Tabellen sehr groß, leidet die Performance des gesamten Blogs massiv darunter. Man sollte deshalb alle paar Monate die Tabelle serendipity_visitors leeren.
serendipity_spamblocklog
In der Tabelle serendipity_spamblocklog speichert das Spamblock-Plugin alle Vorgänge, bei denen das Plugin automatisch Kommentare oder Trackbacks moderiert oder abgewiesen hat. Hin und wieder kann man hier mal nachschauen, ob eventuell zu viele Kommentare abgewiesen worden sind und dann die Filterregeln anpassen. Ansonsten kann man aber problemlos auf diese Daten verzichten und die Tabelle alle paar Monate leeren.
So leert man eine Tabelle:
Alternativ funktioniert auch die SQL-Anweisung "TRUNCATE TABLE seredipity_spamblocklog".
Weitere Tabellen
Abhänigig von den installierten Plugins und der Konfiguration der Plugins und von Serendipity gibt es eventuell noch weitere Tabellen, die potentiell mit der Zeit sehr groß werden können, weil dort irgendetwas protokolliert wird. Am einfachsten bekommt man einen Überblick über die Tabellengrößen, wenn man sich in phpMyAdmin die Tabellenstruktur anzeigen läßt. In der Tabellarischen Auflistung gibt es eine Spalte, in der man die größe der jeweiligen Tabelle sehen kann. Alle Tabellen, die größer als 1 MB sind, sollte man sich genauer anschauen und prüfen, ob die darin enthaltenen Daten nicht vielleicht entbehrlich sind.
Fazit: Regelmäßiges Aufräumen kann ein Serendipity Blog massiv beschleunigen.
ToDo: Script / Plugin schreiben, mit dem man die Logdateien per Click leeren kann.
Es gibt ein paar Tabellen in der Datenbank von Serendipitiy, die mit der Zeit immer größer werden. Das sind die Tabellen serendipity_visitor und serendipity_spamblocklog.
Bei lousigerblick war serendipity_visitor auf über sagenhafte 1.100.000 Millionen Einträge angewachsen und in serendipity_spamblocklog wurden rund 300.000 Datensätze erfaßt. Da wundert es nicht, dass die Datenbankanfragen sehr lange dauern und die Google Webmastertools eine Ladezeit von über 8 Sekunden bescheinigen.
serendipity_visitors und serendipity_visitors_count
Hinter den Tabellen serendipity_visitors und serendipity_visitors_count steckt das Statistik Plugin von Serendipity und die Funkion "Erweitertet Besucherstatistik". Leider wird die Datenbank nicht automatisch bereinigt, so dass die Tabellen enorme Größen erreichen können. Das Problem ist nun, dass bei jedem Seitenaufruf ein schreibender Zugriff auch diese beiden Tabellen erfolgt. Sind die Tabellen sehr groß, leidet die Performance des gesamten Blogs massiv darunter. Man sollte deshalb alle paar Monate die Tabelle serendipity_visitors leeren.
serendipity_spamblocklog
In der Tabelle serendipity_spamblocklog speichert das Spamblock-Plugin alle Vorgänge, bei denen das Plugin automatisch Kommentare oder Trackbacks moderiert oder abgewiesen hat. Hin und wieder kann man hier mal nachschauen, ob eventuell zu viele Kommentare abgewiesen worden sind und dann die Filterregeln anpassen. Ansonsten kann man aber problemlos auf diese Daten verzichten und die Tabelle alle paar Monate leeren.
So leert man eine Tabelle:
- z.B. per phpMyAdmin in die Datenbank des Blogs einloggen
- die entsprechende Tabelle anzeigen lassen
- auf "Operationen" klicken
- ganz unten findet man dann den Punkt "Tabelle lerren (truncate)
Alternativ funktioniert auch die SQL-Anweisung "TRUNCATE TABLE seredipity_spamblocklog".
Weitere Tabellen
Abhänigig von den installierten Plugins und der Konfiguration der Plugins und von Serendipity gibt es eventuell noch weitere Tabellen, die potentiell mit der Zeit sehr groß werden können, weil dort irgendetwas protokolliert wird. Am einfachsten bekommt man einen Überblick über die Tabellengrößen, wenn man sich in phpMyAdmin die Tabellenstruktur anzeigen läßt. In der Tabellarischen Auflistung gibt es eine Spalte, in der man die größe der jeweiligen Tabelle sehen kann. Alle Tabellen, die größer als 1 MB sind, sollte man sich genauer anschauen und prüfen, ob die darin enthaltenen Daten nicht vielleicht entbehrlich sind.
Fazit: Regelmäßiges Aufräumen kann ein Serendipity Blog massiv beschleunigen.
ToDo: Script / Plugin schreiben, mit dem man die Logdateien per Click leeren kann.