MyISAM

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

MyISAM (My Indexed Sequential Access Method) ist eine Storage-Engine des Datenbankverwaltungssystems MySQL. Sie baut, um einige Erweiterungen ergänzt, auf dem älteren ISAM-System auf und war bis MySQL 5.1 Standard-Storage-Engine. Seit Version 5.5 wurde sie durch InnoDB als Standard-Storage-Engine abgelöst.[1]

Eigenschaften[Bearbeiten]

MyISAM zeichnet sich durch hohe Effizienz im Vergleich zu anderen von MySQL unterstützten Tabellentypen aus und unterstützt seit Version 3.23.23 von MySQL eine leistungsfähige Volltextsuche. MyISAM ist daneben für Tabellen empfehlenswert, die deutlich häufiger gelesen werden (SELECT), als in sie geschrieben wird (INSERT/UPDATE). MyISAM unterstützt allerdings im Unterschied zu z. B. InnoDB keine Transaktionen, so dass im Fehlerfall inkonsistente Daten in der Datenbank zurückbleiben können, falls von mehreren zusammengehörigen Queries einige bereits ausgeführt wurden und andere nicht. Auch bietet MyISAM keine referenzielle Integrität.[2]

Für jede MyISAM-Tabelle werden im Dateisystem drei Dateien angelegt. Die Namen jeder der Dateien bestehen dabei aus dem Namen der Tabelle und einer Dateinamenserweiterung, die den Dateityp kennzeichnet: Für die Tabellendefinition .frm, für die Daten .MYD (MYData) und für den Index .MYI (MyIndex).

Um explizit eine MyISAM-Tabelle zu erstellen, kann in SQL die ENGINE Option vorgegeben werden:

CREATE TABLE t (i INT) ENGINE = MYISAM;

(Anmerkung: Ältere Versionen von MySQL verwenden das Schlüsselwort TYPE statt ENGINE (Beispiel: TYPE = MYISAM). MySQL 5.0 und 5.1 unterstützen diese Syntax abwärtskompatibel, allerdings wird die Verwendung von ENGINE empfohlen. Seit MySQL 5.5 wird nur noch das Schlüsselwort ENGINE unterstützt.)[3][4]

Die Verwendung von ENGINE ist optional. Ohne Angabe wird der in den Voreinstellungen hinterlegte Tabellentyp verwendet. MySQL nutzt seit Version 5.5 standardmäßig InnoDB.

Einzelnachweise[Bearbeiten]

  1. http://www.oracle.com/us/corporate/press/195726
  2. siehe z.B. Pachev: Understanding MySQL Internals, Chapter 10: Storage Engines
  3. http://dev.mysql.com/doc/refman/5.1/de/create-table.html
  4. http://dev.mysql.com/doc/refman/5.5/en/create-table.html

Literatur[Bearbeiten]

Weblinks[Bearbeiten]