====== 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 engine^MyISAM^InnoDB^ | [[mysql_foreign_key|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;