MySQL WordPress Datenbank Engine von InnoDB auf MyIsam ändern

Über das Thema welcher Tabellentyp (InnoDB oder MyIsam) für MySQL die bessere, schnellere oder robustere ist gibt es Unmengen an Diskussionen im Internet und ich möchte an dieser Stelle nicht damit weitermachen.
Vor allem nicht, da ich mich mehr im Umfeld von MS SQL Server bewege und MySQL nur hier und da verwende.

Im Zuge meiner Blogumstellung von dasBlog auf WordPress bin ich aber auf das Problem gestoßen, dass die von mir erstellte MySQL Datenbank für WordPress als Standard den Tabellentyp InnoDB verwendet hat, was für mich zuerst auch kein Problem dargestellt hat, sich aber im Laufe der weiteren Einrichtung von WordPress für mich doch als falsch herausgestellt hat. Eines der Plugins, welches Volltextsuche verwendet, setzt voraus dass die table_wp_posts als Tabellenformat das MyIsam Format verwendet.

Da ich in einer Datenbank nicht verschiedene Tabellenformate verwenden wollte, musste ich das Tabellenformat aller Tabellen ändern. Das hätte ich entweder für jede Tabelle manuell über phpMyAdmin machen können (was aber selbst bei nur 15 Tabellen) doch einige Zeit in Anspruch nimmt und vor allem wollte ich für spätere Tests eine schnelle Möglichkeit haben, den Tabellentyp sehr schnell von einem Format zu einem anderen zu ändern.

Das Resultat ist dieses nun folgende SQL Script was einfach über den phpMyAdmin ausgeführt werden kann.

alter table wp_blc_filters ENGINE=myisam;
alter table wp_blc_instances ENGINE=myisam;
alter table wp_blc_links ENGINE=myisam;
alter table wp_blc_synch ENGINE=myisam;
alter table wp_commentmeta ENGINE=myisam;
alter table wp_comments ENGINE=myisam;
alter table wp_links ENGINE=myisam;
alter table wp_options ENGINE=myisam;
alter table wp_postmeta ENGINE=myisam;
alter table wp_posts ENGINE=myisam;
alter table wp_terms ENGINE=myisam;
alter table wp_term_relationships ENGINE=myisam;
alter table wp_term_taxonomy ENGINE=myisam;
alter table wp_usermeta ENGINE=myisam;
alter table wp_users ENGINE=myisam;

Und wenn man die Engine von MyIsam nach InnoDB ändern möchte geht das natürlich auch.

alter table wp_blc_filters ENGINE=innodb;
alter table wp_blc_instances ENGINE=innodb;
alter table wp_blc_links ENGINE=innodb;
alter table wp_blc_synch ENGINE=innodb;
alter table wp_commentmeta ENGINE=innodb;
alter table wp_comments ENGINE=innodb;
alter table wp_links ENGINE=innodb;
alter table wp_options ENGINE=innodb;
alter table wp_postmeta ENGINE=innodb;
alter table wp_posts ENGINE=innodb;
alter table wp_terms ENGINE=innodb;
alter table wp_term_relationships ENGINE=innodb;
alter table wp_term_taxonomy ENGINE=innodb;
alter table wp_usermeta ENGINE=innodb;
alter table wp_users ENGINE=innodb;

6 Gedanken zu „MySQL WordPress Datenbank Engine von InnoDB auf MyIsam ändern“

  1. Pingback: Beliebteste Suchbegriffe » MySQL WordPress Datenbank Engine von InnoDB auf MyIsam ändern …
  2. Gut das ist ein ganz normales alter table auf jede einzelne Tabelle. Interessant zu wissen wäre gewesen, was Ihre Beweggründe sind, nicht verschiedene Tabellenformate in einer Datenbank zu haben?

    Viele Grüße,
    Lutz

    1. Einen technischen Grund dafür hatte ich nicht!

      Aber auch keinen technischen Grund dagegen.

      Und wenn ich es irgendwie erreichen kann, und das war in diesem Fall ganz einfach, dann versuche ich Dinge in Standardisieren.

      In diesem Fall, wenigstens alle Formate gleich zu belassen.

      Spricht denn was dagegen?

      1. Wenn es keinen Unterschied macht welche Datenbanktypen man nutzt dann spricht sicher nichts dagegen. Allerdings ist es oft der Fall dass man durch unterschiedliche DB-Engines noch einiges optimieren kann. Jede DB-Engine hat andere Vor- und Nachteile. MyISAM unterstützt z.B. wie Sie schon sagten die Volltextsuche während InnoDB Row Locks bzw. eine bessere Tansaktion-Isolantion ermöglicht. Beispielsweise Typo3 nutzt das beste aus beiden Engines indem es für jede Tabelle die entsprechend bessere Engine verwendet. So wird für eine Tabelle welche die Blogeinträge beinhaltet, aufgrund der Volltextsuche MyISM verwendet, während für eine Tabelle welche z.B die Usereinstellungen oder Sessions beinhaltet besser InnoDB verwendet wird.

        Aber am Ende bleibt es natürlich jedem selbst überlassen was man macht.

        Von daher ein schönes Wochenende und viele Grüße,
        Lutz

    1. Hallo Stefan,
      vielen Dank für deinen Kommentar.
      Ich habe mir deinen Artikel angesehen, kann aber nun nicht erkennen, was denn nun wirklich besser wäre.
      Hast du eine abschließende Empfehlung welche Tabellen wie umgestellt werden sollen um die beste Performance zu erhalten, auch in Abhängigkeit von bestimmten Add-Ons.

      Besten Dank
      HP

Schreibe einen Kommentar

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