• News
  •  
  • Tools
  •  
  • Bücher
  •  
  • Fotos
  •  
  • Impressum
  •  
  • Be social!
  • RSS
  • FaceBook
  • Google Buzz
  • Mister Wong
  • Delicious
  • Xing
  •  
 

Die Datenbank von WordPress optimieren

Regelmäßige Datenbank 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

 

Der Guru 2.0 Blog lebt von Deinem Kommentar

Es gibt bereits eine Antwort zu diesem Post

Trendy von [web]
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.

Deine Meinung ist dem Guru 2.0 wichtig





XHTML - Du kannst diese Tags benutzen:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

 
  • Werbung

  •  
  • Diesen Post empfehlen


     

     

     

     

     
    Stumbleupon
     
    Wikio
  •  
  • Das war eine Hilfe?

  •  
  • Du brauchst Papier?

  •