MySQL – Speicherplatz optimieren

2017-08-27 von Mario

Um den Speicherverbrauch einer MySQL Datenbank zu optimieren, kann das Tool mysqlcheck verwendet werden. Um einen Vorher-Nachher-Vergleich durchführen zu können, sollte vor einer Optimierung ein Blick auf den Verbrauch des Speicherplatzes der einzelnen Schemata durchgeführt werden.

 

Schritt 1: Anmelden am Datenbankserver

Mit dem Befehl “mysql” an der Datenbank anmelden und danach das Passwort eingeben.

mysql -u username -p

 

Schritt 2: Übersicht Speicherverbrauch je Schema/Tabelle

Wenn für die Anmeldung der User “root” verwendet wird, dann kann mit folgender SQL-Abfrage eine Auflistung aller Datenbanken und deren Speicherverbrauch abgerufen werden:

SELECT table_schema AS "Datenbank",
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)"
FROM information_schema.tables
GROUP BY table_schema
ORDER BY table_schema;

Um einen detaillierten Blick auf einzelne Tabellen zu erhalten, wird eine weitere Abfrage benötigt. Dabei wird der jeweilige Tabellenname und der Speicherverbrauch dargestellt. In der WHERE-Klausel muss dafür der Schemaname (schema_name) angegeben werden.

SELECT table_name AS "Tabelle",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.tables
WHERE table_schema = "schema_name"
ORDER BY (data_length + index_length) DESC;

 

Schritt 3: Speicherverbrauch optimieren

Falls der mysql Client noch geöffnet sein sollte, einfach mit “STRG + C” beenden, um auf die Konsole zu kommen.

Jetzt kann mit dem Befehl “mysqlcheck” der Speicherplatz der Tabellen optimiert werden:

mysqlcheck -u username -p --optimize --databases meinSchemaname

Danach einfach den Schritt 1 und 2 wiederholen, um den Erfolg zu begutachten. Es ist auch möglich, alle Schemata gleichzeitig zu optimieren, hierfür muss nur der Parameter “–databases” mit “–all-databases” ausgetauscht werden und der Wert “meinSchemaname” entfällt.

 

Weiterführender Link:

MySQL Dokumentation: http://dev.mysql.com/doc/refman/5.5/en/mysqlcheck.html

Kategorie: IT Schlagwörter: , , , , ,

MySQL – WordPress Daten bereinigen und Speicherverbrauch optimieren

2015-07-05 von Mario

Beim Erstellen eines Artikels wird in WordPress nach dem Speichern eine Revision angelegt. Dadurch besteht die Möglichkeit, auf einen früheren Stand eines Artikels zurückzugreifen.
wp_revisionen

Die Revisionen haben den Nachteil, dass verhältnismäßig viel Speicherplatz verwendet wird und sich die Performance verschlechtert. In diesem Blog waren in der Tabelle “wp_posts” 5604 Datensätze enthalten und es wurden 8,5 MiB Speicher verwendet.

Mit folgenden SQL Befehl können über die Konsole oder alternativ über phpMyAdmin alle Revisionen gelöscht werden. Zur Sicherheit sollte vorher ein Backup der Datenbank erstellt werden.

DELETE FROM wp_posts WHERE post_type = "revision";

Danach waren lediglich 877 Datensätze mit einem Speicherverbrauch von 8,5 MiB in der Tabelle vorhanden. Mit dem Befehl “Optimize” wird die Speicherung von Tabellendaten reorganisiert und der Speicherplatz reduziert.

OPTIMIZE TABLE wp_posts;

Der Speicherverbrauch betrug daraufhin nur noch 718,3 KiB.

Um zukünftig nicht erneut so viel Speicherplatz für Revisionen zu verbrauchen, kann eine Einstellung in der Datei “wp-config.php” vorgenommen werden. Die Datei in einem Editor öffnen und nach der Zeile suchen:

define('DB_COLLATE', '');

Nach dem Eintrag folgende Einstellung ergänzen:

define('WP_POST_REVISIONS', 3);

Dadurch werden maximal drei Revisionen beim Speichern eines Artikels angelegt.

 

Mehr Informationen zum Thema Revisionen von WordPress gibt es auf der offiziellen Dokumentationsseite: https://codex.wordpress.org/Revisions

 

Kategorie: IT Schlagwörter: , , , ,