Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:mysql:mysql_engine

Die passende storage engine auswählen und einstellen

Ab MySQL-Version 3.23 kann optional für Tabllen die storage engine InnoDB benutzt werden. Seit MySQL-Version 5.5 wird InnoDB sogar als Standard-Speicherengine voreingestellt.

Je nach Anforderung der Datenbank-Anwendung kann es sinnvol sein, die storage engine der Tabellen auf MyISAM oder auf InnoDB einzustellen.

storage engineMyISAMInnoDB
Referentielle Integrität: nicht möglich möglich
Performance SELECT-Abfrage: schlechter (langsamer) besser (schneller)
Performance INSERT und UPDATE: besser (schneller) schlechter (langsamer)
Integrierte Volltextsuche: Ja Nein
Sperrung für Schreibzugriff nur auf ganze Tabelle auf einzelne Datensätze möglich

Empfehlung: Mit einer referentiellen Integrität kann bereits auf der Datenbank-Seite her sichergestellt werden, dass für jeden Datensatz mit einem Fremdschlüssel auch ein Datensatz mit einem gültigen Primärschlüssel existiert. Somit braucht dieses nicht mehr bei der Programmierung expliziet abgefragt werden und kann somit auch Programmabstürze verhindern. Da im Regelfall ohnehin mehr Lese- als Schreibzugriffe auf eine Datenbank durchgeführt werden ist InnoDB meistens die bessere Wahl.

Umstellung der storage engine einer Tabelle

Mit der folgenden SQL-Anweisung wird die storage engine für die Tabelle „Spielscheine“ auf „innoDB“ umgestellt:

ALTER TABLE Spielscheine ENGINE=innodb;

Mit der folgenden SQL-Anweisung wird die storage engine für die Tabelle „Spielscheine“ auf „MyISAM“ umgestellt:

ALTER TABLE Spielscheine ENGINE=MyISAM;
db/mysql/mysql_engine.txt · Zuletzt geändert: 2016/04/14 00:00 (Externe Bearbeitung)