Haftpflicht Blogger
Virtual Server von Host Europe

WordPress – Datenbankanalyse

| 13. Dezember 2015 | Keine Kommentare

MyISAM für Datenbankanalysen

datenbank-wordpressFür Analysen, was eine bestimmte Aktion in WordPress auf Seiten der Datenbank bewirkt, d.h. welche Tabellen neu angelegt werden, welche Einträge sich verändern bzw. gelöscht werden,  empfinde ich InnoDB als Tabellenengine sehr ungünstig.

In der InnoDB-Spalte werden nur vage Schätzwerte angezeigt, mit denen man bei der Analyse wenig anfangen kann.


Nach der Löschung eines Plugins, hatte ich z.B. plötzlich laut den Tabellenschätzzahlen mehr Einträge als zuvor. Das ist natürlich Unsinn und nicht akzeptabel.

innodb-schaetzwerte

Natürlich könnte man mit

    Select count(*) from TABELLENNAME

die Anzahl der Einträge für die einzelnen Tabellen abfragen, aber das ist zu umständlich. Ich bevorzuge den Eintrag für die Datenbank anzuklicken und sofort die exakte Eintragsanzahl aller Tabellen zu erhalten (s.a. Video).

Hauptunterschied: InnoDB versus MyISAM

Die MyISAM-Engine ist performanter als die InnoDB-Engine, wenn es darum geht, bevorzugt READ-Statements abzusetzen. Die Anzahl der Einträge einer MyISAM-Tabelle werden exakt angezeigt. Der Nachteil ist, dass hier ein Table-Locking und kein Row-Locking stattfindet und die Engine nicht ACID-konform arbeitet [MyISAM Storage Engine] [Begriffserklärung ACID-Transaktionen].

Die InnoDB-Engine hat den Vorteil, dass sie Transaktionen (commit, rollback, ACID compliance) erlaubt, weshalb ich auch nicht dafür plädiere würde, eine WordPress Installation generell auf MyISAM umzusteigen [Innodb Storage Engine].

Konversion von InnoDB nach MyISAM

Um die WordPress-Grundtabellen (Stand: WordPress Version 4.4.) von der InnoDB-Engine auf die MyISAM-Engine umzustellen, sind folgende SQL-Befehle abzusetzen:

ALTER TABLE wpleer_commentmeta ENGINE = MyISAM;

ALTER TABLE wpleer_comments ENGINE = MyISAM;

ALTER TABLE wpleer_links ENGINE = MyISAM;

ALTER TABLE wpleer_options ENGINE = MyISAM;

ALTER TABLE wpleer_postmeta ENGINE = MyISAM;

ALTER TABLE wpleer_posts ENGINE = MyISAM;

ALTER TABLE wpleer_termmeta ENGINE = MyISAM;

ALTER TABLE wpleer_terms ENGINE = MyISAM;

ALTER TABLE wpleer_term_relationships ENGINE = MyISAM;

ALTER TABLE wpleer_term_taxonomy ENGINE = MyISAM;

ALTER TABLE wpleer_usermeta ENGINE = MyISAM;

ALTER TABLE wpleer_users ENGINE = MyISAM;

(Anmerk.:  Der obige Tabellen-Prefix ‚wpleer_…‘ ist natürlich entsprechend durch Copy/Paste zu ersetzen.)

Download: SQL-Skript mit den Tabellentyp-Änderungsbefehlen

 

Umstellung des Tabellenengine-Typs in 30 Sekunden

Wie im folgenden Video zu sehen ist, kann man die WordPress-Tabellen schnell auf den Tabellenenginetyp ‚MyISAM‘ umstellen.

 

Weiterführende Informationen:

[1] MySQL Dokumentation: Innodb Storage Engine

[2] MySQL Dokumentation: MyISAM Storage Engine

[3] Perfect-Knowhow.de: Begriffserklärung ACID-Transaktionen

 

 

 

 

 

 

Stichworte: , , , , ,

Kategorie: SQL, WordPress

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.