Die Datenbank von WordPress optimieren

Regelmäßige Datenbank optimieren
Das ist eigentlich einfach. Wir rufen unser phpMyAdmin am Server auf und lassen die interne Optimierung durchlaufen.
Da aber mySQL immer langsamer wird, je mehr Daten verändert werden, ist dieser Vorgang auch regelmäßig zu machen. Und Hand auf’s Herz: Wer macht das schon brav jeden Tag einmal? Höre ich da ein leises: Ja halt jedes halbe Jahr mache ich das schon. Daher hier mein Tipp für euch:
Automatisieren wir halt den ganzen Vorgang, ist ja nicht schwer und ein PlugIn brauchen wir auch nicht. Nein wie immer benötigen wir die Funktionen unseres aktiven Themes in der Datei functions.php. Falls diese Datei bei Dir nicht existiert lege sie einfach an. Vergiss aber nicht inder ersten Zeile muss <?php und in der letzten ?> stehen. Dann können wir ja loslegen.
Zuerst benötigen wir eine Funktion, welche die Optimierung für jede Tabellen der Datenbank durch die von mySQL zur Verfügung gestellte Funktion OPTIMIZE TABLE tabellenName durchführt. Die Funktion können wir gleich mit einem Hook in WordPress einklinken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | //Datenbank optimieren function guru20_CronOptimizeDBase(){ //Abfrage fuer alle Tabellennamen $qrySQL = 'SHOW TABLE STATUS FROM '. DB_NAME; //Abfrage durchfuehren $result = mysql_query($qrySQL); //Falls Tabellen gefunden wurden //Nur zur Sicherheit, denn wenn keine vorhanden sind, //woher kommen die Daten fuer den Blog? if (mysql_num_rows($result)) { //Jede einzelne Tabelle durchgehen while ($table = mysql_fetch_array($result)) { //Abfrage fuer die Optimierung zusammenstellen $qrySQL = 'OPTIMIZE TABLE '.$table[0]; //Abfrage ausfuehren $resOptimize = mysql_query($qrySQL); } } } //Hook fuer die Optimierung erzeugen add_action('optimize-db-hook', 'guru20_CronOptimizeDBase', 10, 1); |
Nun müssen wir das ganze noch regelmäßig aufrufen. Dazu gibt es in der IT sogenannte Cron-Jobs. Und genau diese bietet uns auch WordPress an. Also benutzen wir sie.
1 2 3 4 5 6 7 8 9 10 11 12 13 | //Scheduler definieren add_action('guru20_CronEventOptimize', 'guru20_CronOptimizeDBase'); //Cron-Job definieren function guru20_CronDefineDBOptimize() { //Falls das Event noch nicht definiert wurde if (!wp_next_scheduled('guru20_CronEventOptimize')) { //1. Parameter = 1. Ausfuehrungszeit (timestamp) //2. Parameter = Haeufigkeit (hourly, twicedaily, daily); wp_schedule_event(time(), 'hourly', 'guru20_CronEventOptimize'); } } //Aktion hinzufuegen add_action('wp', 'guru20_CronDefineDBOptimize'); |
Das wars eigentlich. Falls Du noch genauer Wiederholungsintervalle haben willst, musst Du auf ein PlugIn für die Cron-Jobs ausweichen. Dafür würde sich beispielsweise WP-Control [EN] anbieten.
Weitere Posts zu diesem Thema
- Deine Datenbank ist sicher?
Wenn das so ist, dann brauchst Du die folgende Funktion nicht! Sonst bau sie doch in dein Blog ein und Du kannst auf Knopfdruck deine gesamte Datenban [...] - Bessere Hilfe für den Anfänger mit dem WordPress-DashBoard

An und für sich ist die in WordPress integrierte Hilfe ja nicht so schlecht. Aber es gibt nichts, was man nicht noch verbessern kann. Entweder es feh [...] - Wieviele Twitter Follower habe ich?

Die Frage beantwortest Du dir sicher schon über die verschiedensten Tools, oder? Aber ich hätte einfach die Anzahl der Followers in meinem DashBoard [...] - Die Kommentar-Funktion von WordPress entfernen!
Ich benötige in meinem WordPress-Theme absolut keine Kommentare. Ich möchte auch, dass diese Teile im DashBoard verschwinden! Das ist relativ einfach [...] - Die 10 letzten geänderten oder neu angelegten Posts ausgeben

Heute habe ich wieder eine Frage für euch. Allesandro verorgt mich immer wieder mit neuen und interessanten Fragen (Danke, Allesandro!). Ich suche ei [...]




Momentan sind 0 Benutzer, 0 Gäste & 0 Crawler online.
Seit 2007 wurden 1090 Posts veröffentlicht & kein Post wird erscheinen.
Es wurden 4625 Kommentare geschrieben & 216 TrackBacks gesetzt.
Es gibt bereits eine Antwort zu diesem Post
schrieb am 9. 3. 2011 um etwa 16 Uhr:Ich nutze dafür das Plugin WP-Optimize. Optimiert nicht nur die Datenbanken (auf Klick), sondern löscht auch Revisionen, Spam Kommentare etc. Ist eines meiner Lieblingsplugins und ich habe mir angewohnt da mindestens einmal täglich reinzukucken und zu optimieren und löschen.