![]() | ||||||||||||||||||||||||||||||||||
Navigation • Home
| Die Datenbank aufräumen und optimieren
Bei einer Bildergalerie denkt man beim Aufräumen zuerst an alte Fotos. Die Datenbank dahinter gerät leicht aus dem Blick, obwohl sich auch dort mit den Jahren einiges ansammelt. Nehmen wir eine Galerie mit 2.000 Fotos in 25 Kategorien: In der Datenbank stehen dafür 2.000 kurze Zeilen für die Bilder, 25 für die Kategorien, eine Handvoll Einstellungen und ein Konto für die Verwaltung. Das ist überschaubar und ändert sich nur, wenn Sie selbst etwas hochladen oder löschen. Eine Tabelle wächst aber ganz ohne Ihr Zutun weiter. Wer die Datenbank aufräumen und optimieren will, sucht deshalb zuerst diese eine Tabelle und setzt dort gezielt an, statt überall ein bisschen zu löschen.
Erst messen, dann löschenBevor Sie irgendetwas löschen, verschaffen Sie sich einen Überblick. In phpMyAdmin klicken Sie links auf den Namen Ihrer Datenbank. Die Übersicht zeigt jede Tabelle mit der Zahl ihrer Zeilen und ihrer Größe. Bei InnoDB-Tabellen steht vor der Zeilenzahl oft eine Tilde, weil phpMyAdmin dort nur schätzt. Für die Frage, wo der Ballast liegt, reicht diese Schätzung völlig. In einer Galerie ergibt sich fast immer dasselbe Bild:
Zeigt die Übersicht bei Ihnen weitere Tabellen, gehören sie zu einer anderen Anwendung, die dieselbe Datenbank nutzt, etwa einem Blog. Die lassen Sie beim Aufräumen der Galerie in Ruhe, auch wenn sie groß sind. Dafür ist die jeweilige Anwendung selbst zuständig. Zuerst eine vollständige SicherungBevor Sie die Datenbank aufräumen, exportieren Sie sie einmal vollständig. In phpMyAdmin wählen Sie die Datenbank aus, dann oben „Exportieren“, Format SQL, und speichern die Datei mit dem Datum im Namen, etwa Dieser Export enthält nur die Datenbank. Ihre Fotos im Ordner Was Optimieren wirklich bringtLöscht man viele Zeilen, wird die Datei der Tabelle auf dem Server nicht automatisch kleiner. Der Platz bleibt reserviert und wird nach und nach mit neuen Einträgen gefüllt. Erst „Tabelle optimieren“ in phpMyAdmin oder der Befehl Ob sich der Befehl lohnt, verrät bei MyISAM-Tabellen die Spalte „Überhang“ in der Tabellenübersicht von phpMyAdmin. Sie zeigt genau den Platz, den gelöschte Zeilen hinterlassen haben und den das Optimieren zurückholt. Steht dort bei Ein Wundermittel ist der Befehl in keinem Fall. Nach ein paar hundert gelöschten Zeilen merken Sie nichts davon. Spürbar wird er erst, wenn Sie Zehntausende Protokolleinträge auf einmal entfernt haben, und auch dann vor allem an der Größe Ihrer Sicherungen. Lassen Sie ihn deshalb nach großen Löschaktionen laufen und sonst in Ruhe. Vier Handgriffe, die mehr schaden als nutzenWenn Sie die Datenbank aufräumen, geht selten durch Zögern etwas kaputt, fast immer durch einen Klick zu viel. Diese Fälle sollten Sie kennen, bevor Sie in phpMyAdmin auf rote Schaltflächen drücken:
Ein fester Rhythmus statt guter VorsätzeFeste Termine helfen mehr als der Plan, „bei Gelegenheit“ aufzuräumen. Wie oft Sie die Datenbank aufräumen, hängt davon ab, wie viel in der Verwaltung passiert. Für eine private oder kleine Vereinsgalerie genügt diese Einteilung, wer täglich hochlädt, wählt kürzere Abstände.
Datenbank aufräumen im Bildergalerie-ScriptDas Bildergalerie-Script kommt mit fünf Tabellen aus: Für das Systemprotokoll brauchen Sie kein SQL. In der Verwaltung öffnen Sie den Menüpunkt „Systemprotokoll“ und klicken auf „Einträge älter als 90 Tage löschen“. Die Einträge der letzten 90 Tage bleiben stehen, und das Aufräumen selbst landet als „Protokoll aufgeräumt: … Einträge gelöscht“ mit der tatsächlichen Zahl im Protokoll. Die jüngsten Einträge braucht das Script: Die Anmeldesperre nach fünf Fehlversuchen in fünf Minuten zählt genau diese Zeilen. Rechenbeispiel: ein Bot probiert PasswörterAngenommen, ein Bot versucht sich jeden Tag 200-mal mit falschen Zugangsdaten anzumelden. Nach einem Jahr stehen dann rund 73.000 Zeilen in Danach gibt der Befehl Verwaiste Bildeinträge müssen Sie nicht per SQL suchen. Fehlt zu einem Eintrag die Originaldatei, blendet die Galerie das Bild nur aus und löscht den Datensatz bewusst nicht, damit beim Zurückspielen einer Sicherung keine Beschreibung verloren geht. Unter „Bilder verwalten“ erscheint der Eintrag als Karte „Datei fehlt“. Dort laden Sie die Datei per FTP wieder hoch oder entfernen den Eintrag mit „Löschen“. Bilder und Kategorien löschen Sie besser nie per SQL, denn dabei bleiben die Dateien und Vorschaubilder auf dem Server liegen. Wenn Sie die schlanke Datenbank selbst sehen wollen, können Sie das Bildergalerie-Script kostenlos herunterladen und nach ein paar Wochen einen Blick ins Systemprotokoll werfen. Häufige FragenDiese Fragen kommen beim Aufräumen einer Galerie-Datenbank am häufigsten. Wie optimiere ich Tabellen in phpMyAdmin?Wählen Sie links die Datenbank aus, markieren Sie in der Tabellenliste die gewünschten Tabellen mit einem Häkchen und wählen Sie unter der Liste im Auswahlfeld „Mit Auswahl“ den Eintrag „Tabelle optimieren“. Bei einer Galerie genügt meist Welche Daten kann ich gefahrlos löschen?In einer Galerie sind das praktisch nur alte Einträge im Systemprotokoll, und dafür gibt es den Knopf in der Verwaltung. Bilder, Kategorien und Einstellungen sind Ihre Inhalte, die räumen Sie über die Verwaltung auf und nicht in der Datenbank. Gehören weitere Tabellen zu einer anderen Anwendung, lassen Sie sie unberührt. Was ist der Unterschied zwischen Tabelle leeren und Tabelle löschen?Leeren ist wie das Ausräumen einer Schublade: Die Schublade bleibt, der Inhalt ist weg. Löschen entfernt die Schublade gleich mit. Für eine Galerie ist beides nur beim Systemprotokoll vertretbar, und auch dort ist der Knopf für Einträge älter als 90 Tage die schonendere Wahl. Darf ich im Bildergalerie-Script die Tabelle admin_log komplett leeren?Technisch ja, die Galerie läuft weiter. Sie verlieren aber den Nachweis, wer sich wann angemeldet hat, und eine laufende Anmeldesperre ist sofort aufgehoben. Der Knopf „Einträge älter als 90 Tage löschen“ ist meist die bessere Wahl. Verwandte ThemenDiese Artikel schließen direkt an: phpMyAdmin, Sicherung und Pflege der Galerie sowie die Frage, wie Sie ohne eingebaute Besucherstatistik zu Zahlen kommen. | |||||||||||||||||||||||||||||||||