Arbeiten mit MySQL-Datenbankmodulen

Dieser Artikel ist eine Einführung in die Arbeit mit Datenbankmodulen in MySQL.

Um einige der in diesem Artikel beschriebenen Verfahren ausführen zu können, müssen Sie über Root-Zugriff auf den Server verfügen.

Über MySQL-Datenbank-Engines

Datenbank-Engines stellen die zugrunde liegende Funktionalität für MySQL bereit, um mit Daten zu arbeiten und sie zu verarbeiten.

Die beiden gebräuchlichsten und beliebtesten MySQL-Datenbank-Engines sind MyISAM und InnoDB. MyISAM ist die Standard-Engine für MySQL für Versionen vor 5.5.5 und funktioniert in den meisten Szenarien gut. Abhängig von Ihren Anforderungen gibt es jedoch Situationen, in denen ein anderes Datenbankmodul wie InnoDB die bessere Wahl sein kann. InnoDB unterstützt beispielsweise Transaktionen, MyISAM jedoch nicht. InnoDB bietet auch Unterstützung für Fremdschlüssel, MyISAM jedoch nicht.

Wenn Sie Root-Zugriff auf Ihren Server haben, haben Sie die vollständige Kontrolle darüber, wie und wann MySQL die verschiedenen Datenbank-Engines verwendet. Sie können das Standarddatenbankmodul ändern, das Datenbankmodul einer bestimmten Tabelle ändern und vieles mehr.

In diesem Artikel wird davon ausgegangen, dass Sie bereits wissen, wie Sie mit dem mysql-Programm über die Befehlszeile auf MySQL zugreifen. Wenn Sie nicht wissen, wie das geht, lesen Sie bitte zuerst diesen Artikel.

Ermitteln der Standard-Datenbank-Engine

Um die Standard-Datenbank-Engine für Ihre Installation zu bestimmen, geben Sie den folgenden Befehl an der mysql> -Eingabeaufforderung ein:

SHOW ENGINES;

Eine Liste der unterstützten Engines wird zusammen mit einer kurzen Beschreibung und den unterstützten Funktionen für jede Engine angezeigt. Das Standarddatenbankmodul ist in der Spalte Support als STANDARD markiert.

Ändern der Standard-Datenbank-Engine

Sie können die Standard-Datenbank-Engine für Ihre MySQL-Installation ändern. Danach verwenden alle neuen Tabellen, die Sie erstellen, das neue Datenbankmodul (es sei denn, Sie legen das Modul während der Tabellenerstellung explizit fest).

Um das Standard-Datenbankmodul zu ändern, gehen Sie folgendermaßen vor:

  1. Verwenden Sie Ihren bevorzugten Texteditor, um die Datenbank zu öffnen.cnf-Datei auf Ihrem Server. Die Lage des Hauses.cnf-Datei hängt von Ihrer Linux-Distribution:
    • Auf CentOS und Fedora, die meine.die CNF-Datei befindet sich im Verzeichnis /etc.
    • Auf Debian und Ubuntu, die my.die CNF-Datei befindet sich im Verzeichnis /etc/mysql.
  2. Im my.cnf-Datei, suchen Sie den Abschnitt.
  3. Fügen Sie die folgende Zeile im Abschnitt hinzu oder ändern Sie sie. Ersetzen Sie ENGINE durch den Namen der Engine, die Sie als Standard verwenden möchten:

    default-storage-engine=ENGINE

    Wenn Sie die InnoDB-Datenbank-Engine aktivieren, müssen Sie abhängig von Ihrer Linux-Distribution möglicherweise die folgende Zeile im my deaktivieren.cnf-Datei:

    skip-innodb

    Fügen Sie dazu einfach ein Rautenzeichen (#) wie folgt an den Zeilenanfang an:

    #skip-innodb

  4. Speichern Sie die Änderungen im my.cnf-Datei, und beenden Sie dann den Texteditor.
  5. Starten Sie den MySQL-Server mit dem entsprechenden Befehl für Ihre Linux-Distribution neu:

    • Geben Sie für CentOS und Fedora Folgendes ein:
      service mysqld restart
    • Geben Sie für Debian und Ubuntu Folgendes ein:

      service mysql restart

      verwenden Sie für das neue Standarddatenbankmodul die SQL-Anweisung SHOW ENGINES, wie im Abschnitt Ermitteln des Standarddatenbankmoduls beschrieben.

Ermitteln der aktuellen Datenbank-Engine einer Tabelle

Um festzustellen, welche Engine eine Datenbanktabelle derzeit verwendet, geben Sie den folgenden Befehl an der mysql> -Eingabeaufforderung ein. Ersetzen Sie database durch den Namen der Datenbank, die Sie überprüfen möchten:

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES where TABLE_SCHEMA = 'database';

Dieser Befehl zeigt eine Liste aller Tabellen in der Datenbank zusammen mit der Engine an, die jede Tabelle verwendet.

Datenbankmodul einer Tabelle ändern

Sie können das Datenbankmodul für eine bereits vorhandene Tabelle ändern. Die folgende SQL-Anweisung zeigt beispielsweise, wie eine Tabelle mit dem Namen myTable geändert wird, um die InnoDB-Engine zu verwenden:

ALTER TABLE myTable ENGINE = InnoDB;

Erstellen einer neuen Tabelle mit einer bestimmten Datenbank-Engine

Wenn Sie eine Tabelle in einer Datenbank erstellen, können Sie deren Datenbank-Engine explizit festlegen (andernfalls verwendet MySQL bei der Tabellenerstellung die Standard-Datenbank-Engine). Die folgende SQL-Anweisung zeigt beispielsweise, wie eine Tabelle mit dem Namen myTable erstellt wird, die das MyISAM-Datenbankmodul verwendet:

CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE MyISAM;

Um eine Tabelle zu erstellen, die das InnoDB-Datenbankmodul verwendet, können Sie die folgende SQL-Anweisung verwenden:

CREATE TABLE myTable ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), data VARCHAR(20) NOT NULL ) ENGINE InnoDB;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.