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

Arbeiten mit MySQL-Datenbank-Engines

Dieser Artikel ist eine Einführung in die Arbeit mit Datenbank-Engines in MySQL.

Um einige der Verfahren in diesem Artikel auszuführen, müssen Sie Root-Zugriff auf den Server haben.

Über MySQL-Datenbank-Engines

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

Die beiden häufigsten 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 eine andere Datenbank-Engine wie InnoDB möglicherweise die bessere Wahl ist. Beispielsweise unterstützt InnoDB Transaktionen, während MyISAM dies nicht tut. InnoDB bietet auch Unterstützung für Fremdschlüssel, während MyISAM dies nicht tut.

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 die Standard-Datenbank-Engine ändern, die Datenbank-Engine einer bestimmten Tabelle ändern und vieles mehr.

Dieser Artikel geht davon aus, dass Sie bereits wissen, wie Sie mit mysql über die Befehlszeile auf MySQL zugreifen Programm. Wenn Sie nicht wissen, wie das geht, lesen Sie bitte zuerst diesen Artikel.

Bestimmen der Standard-Datenbank-Engine

Um die Standarddatenbank-Engine für Ihre Installation zu bestimmen, geben Sie den folgenden Befehl in mysql> ein Eingabeaufforderung:

SHOW ENGINES;

Eine Liste der unterstützten Engines wird zusammen mit einer kurzen Beschreibung und den unterstützten Funktionen für jede Engine angezeigt. Die Standard-Datenbank-Engine ist mit DEFAULT gekennzeichnet im Support Spalte.

Ä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, die neue Datenbank-Engine (es sei denn, Sie legen die Engine explizit während der Tabellenerstellung fest).

Gehen Sie folgendermaßen vor, um die Standard-Datenbank-Engine zu ändern:

  1. Verwenden Sie Ihren bevorzugten Texteditor, um my.cnf zu öffnen Datei auf Ihrem Server. Der Speicherort von my.cnf Datei hängt von Ihrer Linux-Distribution ab:
    • Auf CentOS und Fedora die my.cnf Datei befindet sich im Verzeichnis /etc Verzeichnis.
    • Auf Debian und Ubuntu die my.cnf Datei befindet sich im Verzeichnis /etc/mysql Verzeichnis.
  2. In der my.cnf Suchen Sie die Datei [mysqld] Abschnitt.
  3. Fügen Sie die folgende Zeile in [mysqld] hinzu oder ändern Sie sie Sektion. Ersetzen Sie MOTOR mit dem 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 in my.cnf deaktivieren Datei:

    skip-innodb

    Fügen Sie dazu einfach ein Nummernzeichen (# ) an den Anfang der Zeile wie folgt:

    #skip-innodb
  4. Speichern Sie die Änderungen in 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
  6. Um die neue Standard-Datenbank-Engine zu bestätigen, verwenden Sie die Engines anzeigen SQL-Anweisung wie im Abschnitt Bestimmen der Standard-Datenbank-Engine beschrieben.

Ermitteln der aktuellen Datenbank-Engine einer Tabelle

Um festzustellen, welche Engine eine Datenbanktabelle derzeit verwendet, geben Sie den folgenden Befehl in mysql> ein prompt. Datenbank ersetzen mit dem Namen der Datenbank, die Sie prü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.

Ändern der Datenbank-Engine einer Tabelle

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

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 ihre Datenbank-Engine explizit festlegen (andernfalls verwendet MySQL während der Tabellenerstellung die Standard-Datenbank-Engine). Die folgende SQL-Anweisung zeigt beispielsweise, wie eine Tabelle mit dem Namen myTable erstellt wird die die MyISAM-Datenbank-Engine 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 die InnoDB-Datenbank-Engine verwendet, können Sie auf ähnliche Weise die folgende SQL-Anweisung verwenden:

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

Weitere Informationen

  • Weitere Informationen über die MyISAM-Engine finden Sie unter http://dev.mysql.com/doc/refman/5.5/en/myisam-storage-engine.html.
  • Weitere Informationen über die InnoDB-Engine finden Sie unter http://dev.mysql.com/doc/refman/5.5/en/innodb-storage-engine.html.