Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:mysql:mysql_engine

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
db:mysql:mysql_engine [2015/12/22 18:09]
webproducer angelegt
db:mysql:mysql_engine [2016/04/14 00:00] (aktuell)
Zeile 1: Zeile 1:
-====== Die passende storage engine auswählen ======+====== 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. 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.
Zeile 6: Zeile 6:
  
 ^storage engine^MyISAM^InnoDB^ ^storage engine^MyISAM^InnoDB^
-| Referentielle Integrität:​ | nicht möglich | möglich |+| [[mysql_foreign_key|Referentielle Integrität:​]] | nicht möglich | möglich |
 | Performance SELECT-Abfrage:​ | schlechter (langsamer) | besser (schneller) | | Performance SELECT-Abfrage:​ | schlechter (langsamer) | besser (schneller) |
 | Performance INSERT und UPDATE: | besser (schneller) | schlechter (langsamer) | | Performance INSERT und UPDATE: | besser (schneller) | schlechter (langsamer) |
Zeile 13: Zeile 13:
  
 **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. **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:
 +
 +<code sql>
 +ALTER TABLE Spielscheine ENGINE=innodb;​
 +</​code>​
 +
 +Mit der folgenden SQL-Anweisung wird die storage engine für die Tabelle "​Spielscheine"​ auf "​MyISAM"​ umgestellt:
 +
 +<code sql>
 +ALTER TABLE Spielscheine ENGINE=MyISAM;​
 +</​code>​
 +
db/mysql/mysql_engine.1450804187.txt.gz · Zuletzt geändert: 2015/12/22 00:00 (Externe Bearbeitung)