WordPress mit Lastproblemen

In den letzten Tagen hatte ich mit einer WordPress Installation einige Probleme. Diese äußerten sich darin, das die Webseite bei jedem Aufruf hohe Last erzeugte. Im Laufe der Zeit wurde die Laste dabei immer größer. Irgendwann gab der Server nur noch einen HTTP 500 Error von sich. Im Backend äußerte sich das ganze mit einer weißen Seite, was im Normalfall auf zu wenig Speicher für PHP hinweist.

In diesem Fall lag das Problem an anderer Stelle. Beim Überprüfen der Datenbank stellte sich heraus das die Tabelle „wp_options“ enorm groß war. Im Normalfall ist diese Tabelle ein paar MiB groß. In meinem Fall war sie knapp 600 MiB groß und bestand aus über 500.000 Einträgen. Bei diesen Dimensionen wird klar, wohin die Performance verschwunden ist. Im konkreten Fall gab es viele „transient“ und „displayed_galleries“ Einträge. Letzte Einträge werden vom Plugin „NextGEN Gallery“ erzeugt. Die „transient“-Einträge enstehen durch Caches (unter anderem für den RSS-Feed). Möchte man die Datenbank bereinigen helfen folgende SQL Befehle:

DELETE FROM wp_options WHERE option_name LIKE ('_transient_%')
DELETE FROM wp_options WHERE option_name LIKE ('displayed_galleries%')

Anschließend sollte die Tabelle optimiert werden, damit der von den gelöschten Einträgen belegte Speicherplatz wieder freigegeben wird.

Update:
Mittlerweile gibt es auch einen entsprechenden Artikel im WordPress Forum.

Weitere Informationen gibt es unter:
http://www.staze.org/wordpress-_transient-buildup/

DBPedia

Wissen in strukturierter Form hat im Gegensatz zu unstrukturiertem Wissen, einige entscheidende Vorteile. Der wichtigste ist wahrscheinlich die automatisierte Anwendung und Auswertung durch Computersysteme. Natürlich muss hierzu erst einmal das entsprechende Wissen in eine strukturierte Form gebracht werden. Genau dies wird beim DBPedia Projekt gemacht. Im Falle dieses von der Universität Leipzig betriebenen Projektes werden dabei die strukturierten Daten der Wikipedia ausgewertet und der Allgemeinheit unter der GPL bzw. der CC-BY-SA Lizenz zur Verfügung gestellt. Zu finden ist das Projekt dabei unter http://de.dbpedia.org/.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/DBpedia

Kommandozeile für MySQL

Manchmal benötigt man eine MySQL Kommandozeile, hat aber kein „phpmyadmin“ zur Verfügung. Für einen solchen Fall wäre es schön wenn man eine kleine Anwendung hätte welche dieses Problem löst. Genau hier setzt die PHP Anwendung „Adminer“ an. Dabei handelt es sich sozusagen um eine „phpmyadmin“ Minimalversion.

SQL-Query Ansicht im Adminer

Das schöne am Adminer ist das er nur aus einer Datei besteht und so unkompliziert „installiert“ werden kann. Zu finden ist das ganze unter http://www.adminer.org.

Benutzername in WordPress ändern

Möchte man unter WordPress den Nutzernamen ändern, so wird man feststellen das dies nicht in der Nutzeroberfläche möglich ist. Viel mehr muss man in diesem Fall an die Datenbank ran. Dort gibt es die Tabelle „wp_users“ in welcher man den entsprechenden Nutzernamen unter „user_login“ sucht und ihn dort ändert. Danach kann man sich mit dem neuen Nutzernamen anmelden.

Verschlüsselte Datenbank mit SQLite

Die Daten in einer SQLite Datenbank sind im Normalfall unverschlüsselt. Natürlich kann man die Daten von Hand verschlüsseln, was aber auf Dauer wahrscheinlich etwas anstrengend wird. Anhilfe schafft hier die Bibliothek SQLCipher mit welcher SQLite Datenbanken verschlüsselt werden können. Die Bibliothek ist dabei Open Source und steht unter der BSD Lizenz. Zu finden ist die Bibliothek unter http://sqlcipher.net/.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Sqlite