Datenbank verkleinern

Aus schokokeks.org Wiki
Wechseln zu: Navigation, Suche

Übermäßig große MySQL-Datenbanken wirken sich sehr negativ auf die Performance aus. Wir bitten deshalb unsere Kunden, unnötig große Datenbanken zu vermeiden.

Üblicherweise entstehen große Datenbanken meistens, wenn eine Webanwendung Logs innerhalb der Datenbank anlegt, die sehr schnell wachsen, etwa Spamlogs.

Serendipity

In früheren Versionen loggte die Anti-Spam-Funktion von Serendipity alle Aktionen. Ein Update auf die Version 1.3.1 ist unbedingt zu empfehlen (auch aus Sicherheitsgründen).

Im Einstellungsdialog für Anti-Spam-Einstellungen (unter Comments -> Configure Anti-Spam-Methods) findet sich die Option "Choose logging method", die im Normalfall auf "No Logging" gesetzt sein sollte.

Hat man mit einer älteren Serendipity-Version Spamlogging betrieben, sollte man anschließend noch die Tabelle serendipity_spamblocklog mit phpMyAdmin leeren.

Drupal

Drupal legt in der Datenbanktabelle watchdog für diverse Ereignisse Logs an. Diese werden von Drupal automatisch nach einer gewissen Zeit entfernt (Standardeinstellung sind maximal 1000 Log-Einträge), jedoch nur, wenn der Drupal-Cronjob eingerichtet ist.

Für alle Drupal-Installationen sollte daher unbedingt der entsprechende Cronjob eingerichtet werden:

  • Mit crontab -e editiert man die Cronjobs.
  • Dort eine Zeile anlegen, die etwa so aussehen könnte (bitte nicht exakt so, sondern die Zahlen variieren):
31 2 4 * * wget -O /dev/null -q http://www.schokokeks.org/cron.php
  • Die erste Zahl sind die Minuten, die zweite die Stunden und die dritte der Wochentag, diese entsprechend mit zufälligen Werten anpassen. Cronjobs nach Möglichkeit nicht zu "geraden" Zeiten laufen lassen, wenn alle Nutzer ihre Cronjobs auf Minute und Stunde Null laufen lassen, ist das System dann komplett überlastet.