Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Soll ich MyISAM- oder InnoDB-Tabellen für meine MySQL-Datenbank verwenden?

Standardmäßig immer InnoDB verwenden.

In MySQL 5.1 später sollten Sie InnoDB verwenden. In MySQL 5.1 sollten Sie das InnoDB-Plugin aktivieren . In MySQL 5.5 ist das InnoDB-Plugin standardmäßig aktiviert, also verwenden Sie es einfach.

Der Ratschlag vor Jahren lautete, dass MyISAM in vielen Szenarien schneller sei. Dies gilt jedoch nicht mehr, wenn Sie eine aktuelle MySQL-Version verwenden.

Es kann einige exotische Eckfälle geben, in denen MyISAM bei bestimmten Workloads (z. B. Tabellenscans oder hochvolumige INSERT-only-Arbeiten) geringfügig besser abschneidet, aber die Standardauswahl sollte InnoDB sein, es sei denn, Sie können es beweisen Sie haben einen Fall, in dem MyISAM besser abschneidet.

Zu den Vorteilen von InnoDB gehören neben der meist erwähnten Unterstützung von Transaktionen und Fremdschlüsseln:

  • InnoDB ist widerstandsfähiger gegen Tabellenkorruption als MyISAM.
  • Sperren auf Zeilenebene. In MyISAM blockieren Leser Schreiber und umgekehrt.
  • Unterstützung eines großen Pufferpools für Daten und Indizes. MyISAM-Schlüsselpuffer ist nur für Indizes.
  • MyISAM stagniert; alle zukünftigen Entwicklungen werden in InnoDB erfolgen.

Siehe auch meine Antwort auf MyISAM versus InnoDB