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

Wann sollte man MyISAM und InnoDB verwenden?

Lesen Sie mehr über Speicher-Engines .

MyISAM:

Die MyISAM Speicher-Engine in MySQL.

  • Einfacher zu entwerfen und zu erstellen, daher besser für Anfänger geeignet. Keine Sorge um die Fremdbeziehungen zwischen Tabellen.
  • Durch die einfachere Struktur insgesamt schneller als InnoDB, dadurch viel geringere Kosten für Server-Ressourcen. -- Stimmt meistens nicht mehr.
  • Volltextindizierung. -- InnoDB hat es jetzt
  • Besonders gut für leseintensive (ausgewählte) Tabellen. -- Stimmt meistens nicht mehr.
  • Der Festplatten-Footprint ist 2x-3x kleiner als der von InnoDB. -- Ab Version 5.7 ist dies vielleicht der einzige wirkliche Vorteil von MyISAM.

InnoDB:

Die InnoDB Speicher-Engine in MySQL.

  • Unterstützung für Transaktionen (gibt Ihnen Unterstützung für ACID ). Eigentum).
  • Sperren auf Zeilenebene. Wenn Sie einen feinkörnigeren Sperrmechanismus haben, erhalten Sie eine höhere Parallelität im Vergleich zu beispielsweise MyISAM .
  • Fremdschlüsselbeschränkungen. So können Sie die Datenbank die Integrität des Datenbankstatus und die Beziehungen zwischen Tabellen sicherstellen lassen.
  • InnoDB ist widerstandsfähiger gegen Tabellenkorruption als MyISAM.
  • Unterstützung eines großen Pufferpools für Daten und Indizes. MyISAM-Schlüsselpuffer ist nur für Indizes.
  • MyISAM stagniert; Alle zukünftigen Erweiterungen werden in InnoDB enthalten sein. Dies wurde mit dem Rollout der Version 8.0 deutlich.

MyISAM-Einschränkungen:

  • Keine Fremdschlüssel und kaskadierende Löschungen/Aktualisierungen
  • Keine Transaktionsintegrität (ACID-Konformität)
  • Keine Rollback-Fähigkeiten
  • 4.284.867.296 Zeilenlimit (2^32) -- Dies ist der alte Standard . Das konfigurierbare Limit (für viele Versionen) war 2**56 Bytes.
  • Maximal 64 Indizes pro Tabelle

InnoDB-Einschränkungen:

  • Keine Volltextindizierung (Mysql-Version unter 5.6)
  • Kann nicht für schnelles, schreibgeschütztes Komprimieren komprimiert werden (5.5.14 führte ROW_FORMAT=COMPRESSED ein )
  • Sie können eine InnoDB-Tabelle nicht reparieren

Für ein kurzes Verständnis lesen Sie die folgenden Links:

  1. MySQL-Engines:InnoDB vs. MyISAM – Ein Vergleich der Vor- und Nachteile
  2. MySQL-Engines:MyISAM vs. InnoDB
  3. Was sind die Hauptunterschiede zwischen InnoDB und MyISAM?
  4. MyISAM versus InnoDB
  5. Was ist der Unterschied zwischen MyISAM und InnoDB?
  6. MySql:MyISAM vs. Inno DB!