Login

MyISAM ist nicht mehr zeitgemäß – verwendet InnoDB

InnoDB ist seit MySQL 5.5 und damit seit beinahe 15 Jahren die Standard-Engine für MySQL-Datenbanken. MyISAM war zuvor bis MySQL 5.5 üblich, wird nicht mehr aktiv weiterentwickelt, ist aber häufig noch im Einsatz.

Ein früherer Beitrag zu diesem Thema erschien bereits 2017, der ebenfalls auf die Unterschiede und auf die Umstellung eingeht. Titel: InnoDB oder MyISAM
 

Kurzer Überblick der technischen Unterschiede

Sperrmechanismus
– InnoDB verwendet Row-Level-Locking, sperrt nur einzelne Zeilen, wodurch konkurrierende Schreibzugriffe effizienter abgearbeitet werden können.
– MyISAM sperrt stets die komplette Tabelle (Table Lock), was bei parallelen Zugriffen zu Engpässen führen kann.

Transaktionen & Sicherheit
– InnoDB unterstützt ACID-konforme Transaktionen, inkl. Commit, Rollback und automatischer Crash-Recovery.
– MyISAM bietet keine Transaktionen und ist anfälliger für Inkonsistenzen nach Abstürzen.

Fremdschlüssel
– Nur InnoDB unterstützt Foreign Key Constraints zur referenziellen Integrität.
– MyISAM hat diese Fähigkeit nicht.

Volltextsuche
– InnoDB unterstützt FULLTEXT-Indexe „erst“ seit MySQL 5.6.4
– MyISAM bietet integrierte Volltextsuche.

Speicher und Performance
– InnoDB hat höhere „Overhead“-Kosten, optimiert jedoch bei den gemischten Lese-/Schreiboperationen und hoher Parallelität die Performance.
– MyISAM hat einen geringeren Festplatten- und RAM Verbrauch und kann bei rein leselastigen Abfragen Vorteile bieten, z. B. bei COUNT(*)-Abfragen, da die Zeilenanzahl gespeichert wird.
 

Wann ist MyISAM noch sinnvoll?

Fast nie – höchstens für Edge-Cases wie:
– Einzelne Read-Only Tabellen mit extrem hohem Lesezugriff (z.B. alte Suchindizes)
– Spezielle Anwendungsfälle, bei denen keine Transaktionen und keine Gleichzeitigkeit erforderlich sind (große, unveränderte Statistik-Tabellen ohne Transaktionen)

Aber selbst hier ist InnoDB mit Fulltext-Indizes oft schon die bessere Wahl.
 
mysql-logo

Klare Empfehlung daher InnoDB

Für moderne Anwendungen, CMS, Shops oder Blogs ist InnoDB in fast allen Fällen die bessere Wahl: Transaktionen, Foreign-Keys, Crash-Recovery und besseres Handling bei parallelen Zugriffen.

Die Mischung von InnoDB und MyISAM wird nicht empfohlen, da JOINs auf MyISAM-Tabellen zu Table-Locks führen können und somit Anfragen erheblich verlangsamen.

Ein solcher Mischbetrieb ist häufig bei alten Installationen von Software der Fall, wenn zwar das Basissystem durch Updates irgendwann auf InnoDB umgestellt wurde, aber ältere Plugins weiterhin noch MyISAM verwenden.

Tabelle einer Datenbank in InnoDB umwandeln vorher ein Backup erstellen:
ALTER TABLE tablename ENGINE=innodb;
 

Einige CMS/Shop-Systeme mit InnoDB als MySQL-Standard

– WordPress + WooCommerce: inzwischen Standard
– Joomla: InnoDB bei modernen Installationen
– Shopware: Pflicht ab neueren Versionen
 

InnoDB bei SpaceHost performanter dank Percona

Bei uns sind leicht veränderte MySQL-Installationen im Einsatz, die vollständig kompatibel mit Standard-MySQL sind. Neben Vorteilen des Managements und der Überwachung für uns als Hoster im Hintergrund, bringen diese v.a. auch Vorteile für Kunden: Percona Server

Percona Server ist ein Fork von MySQL mit Fokus auf Performance, Stabilität, erweitertes Monitoring und Tuning. Dabei setzt Percona auf die Standard-MySQL-InnoDB mit diversen Optimierungen.

Dies erfolgt durch Erweiterung und Optimierung des InnoDB-Codes selbst, um echte Performance- und Stabilitätsverbesserungen zu erreichen. Zu diesen Verbesserungen gegenüber Standard-InnoDB zählen u.a.:
– Pufferverwaltung (Buffer Pool): Verbesserte Algorithmen fürs Caching und Flushing > besserer Durchsatz bei hoher Last
– Crash Recovery: Verbesserte Wiederherstellung nach Abstürzen
– IO Subsystem: Optimierte IO-Scheduling-Strategien für besseres paralleles Lesen/Schreiben
– Adaptive Hash Index: Verbesserungen im Adaptive Hash Index für schnelleren Zugriff
– Locking und Deadlock Handling: Bessere Sperr- und Deadlock-Mechanismen, weniger Wartezeiten
 

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *
Bitte beachte, dass sich Dein Kommentar auf den Artikel beziehen sollte. Wenn Du ein persönliches Kundenanliegen besprechen möchtest, wende Dich bitte an unseren Kundenservice auf Facebook, Twitter oder über unsere Support-Seite.

Datenschutz-Übersicht
SpaceHost - Webhosting, Domains, Server auf SSD

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie die Wiedererkennung von dir, wenn du auf unsere Website zurückkehrst. Cookies helfen unserem Team zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.

Erforderliche Cookies

Unbedingt notwendige Cookies für wesentliche Funktionen zur Sicherstellung der Servicekontinuität und Standortsicherheit, sowie zur Speicherung deiner Auswahl für die Cookie-Einstellung.

Analyse-Cookies

Diese Website verwendet Google Analytics, um anonyme Informationen wie die Anzahl der Besucher der Website und die beliebtesten Seiten zu sammeln.

Diesen Cookie aktiviert zu lassen, hilft uns dabei, unsere Produkte, Dienstleistungen und das Benutzererlebnis zu verbessern.

Zusätzliche Cookies

Diese Website verwendet die folgenden zusätzlichen Cookies:

- VG Wort (Session-Cookie)

Dieses Cookie hilft, die Vergütung von gesetzlichen Ansprüchen von Autoren und Verlagen zu ermitteln und hilft, eine rechtmäßige Vergütung sicherzustellen.