Genauso wie die Entscheidung für Linux gegen macOS oder Windows, oder umgekehrt, ist diese Entscheidung stark davon abhängig, welche Präferenzen man gerade hat. So haben beide Storage Engines ihre Vorteile und je nachdem, was gerade benötigt wird, wird MyISAM (My Indexed Sequential Access Method) oder InnoDB (Innobase Oy Inc.) benutzt. Mit dem Wissen um die Vorteile und Nachteile beider MySQL Storage Engines hat man eine gute Entscheidungsgrundlage für die Verwendung in dem jeweiligen Fall.
Im Dateisystem werden für jede MyISAM-Tabelle drei Dateien angelegt. Die Namen der Dateien bestehen dabei aus dem Namen der Tabelle und einer Dateinamenserweiterung, die den Dateityp kennzeichnet. So steht für die Tabellendefinition .frm, für die Daten steht .MYD (MYData) und für den Index steht .MYI (MyIndex).
Um explizit eine MyISAM-Tabelle zu erstellen, kann in SQL die ENGINE Option vorgegeben werden.
CREATE TABLE t (i INT) ENGINE = MYISAM;
InnoDB speichert die Tabellenstruktur in frm-Dateien, Nutzdaten und Indizes in einem Tabellenraum. Der Tabellenraum wird vor Beginn der Arbeit mit dem Datenbankserver eingestellt und kann sich über eine oder mehrere Dateien erstrecken. Die Dateien des Tabellenraums können auf verschiedene Verzeichnisse verteilt werden. Ähnlich einer Festplattenpartition kann die Konfiguration des Tabellenraums nicht nachträglich angepasst werden, ohne Datenverlust zu riskieren.
Um explizit eine Tabelle mit InnoDB als Speichersubsystem anzulegen, kann die SQL-Option ENGINE verwendet werden.
CREATE TABLE t (i INT) ENGINE = InnoDB;
Bei kleinen Datenbanken oder Anwendungen wo viel und oft Daten geändert werden, ist der Einsatz von MyISAM sinnvoll. MyISAM ist daneben für Tabellen empfehlenswert, die deutlich häufiger gelesen werden (SELECT), als in sie geschrieben wird (INSERT/UPDATE). Hier ist MyISAM deutlich performanter, weil INSERT und UPDATE schneller sind. Vor allem wird eine leistungsfähige Volltextsuche unterstützt, was Sinn macht, wenn Texte durchsucht werden sollen. Durch die fehlende Unterstützung von Transaktionen können im Fehlerfall inkonsistente Daten in der Datenbank zurückbleiben, sofern von mehreren zusammengehörigen Queries einige bereits ausgeführt wurden und andere Queries noch nicht. Ebenso fehlt MyISAM die referenzielle Integrität.
Beispiele für MyISAM ist bei WordPress oder bei Joomla zu finden.
InnoDB eignet sich vorallem bei großen Datenbanken, wenn viele Daten miteinander verknüpft werden. Sobald hier Daten gelöscht werden, löscht InnoDB alle referenzierten Daten automatisch mit. Das macht es der Anwendung hinter der Datenbank leichter die referentielle Integrität einzuhalten.
Einsatz findet InnoDB bei Typo3 CMS oder bei MediaWiki.