Ich habe mich umgesehen und festgestellt, dass einige der MySQL-Engines innodb und MyISAM sind. Vielleicht gibt es noch wenige. Meine Frage ist, was sind diese Datenbank-Engines?
Was sind die Unterschiede zwischen verschiedenen MySQL-Engines? Und was noch wichtiger ist: Wie entscheide ich mich für eine?
Antworten:
mysql> SHOW ENGINES; +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +------------+---------+----------------------------------------------------------------+--------------+------+------------+ | InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | CSV | YES | CSV storage engine | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO | +------------+---------+----------------------------------------------------------------+--------------+------+------------+
Ich persönlich benutze InnoDB immer, wenn ich MySQL verwenden muss. Es unterstützt Transaktions- und Fremdschlüssel, MyISAM nicht.
quelle
MyISAM und InnoDB sind die am häufigsten verwendeten Motoren.
MyISAM ist etwas schneller als InnoDB und implementiert den FULLTEXT-Index, der für die Integration von Suchfunktionen sehr nützlich ist. MyISAM wird nicht abgewickelt und implementiert keine Fremdschlüsseleinschränkungen, was ein großer Nachteil ist.
Sie können jedoch das Beste aus beiden verwenden und Tabellen mit verschiedenen Speicher-Engines erstellen. Einige Softwareprogramme (WordPress, glaube ich) verwenden Inno für die meisten Daten, z. B. Beziehungen zwischen Seiten, Versionen usw. Datensätze für die Beiträge enthalten eine ID, die mit einem Datensatz in einer separaten Inhaltstabelle verknüpft ist, die MyISAM verwendet. Auf diese Weise wird der Inhalt in der Tabelle mit den besten Suchfunktionen gespeichert, während die meisten anderen Daten in Tabellen gespeichert werden, die die Datenintegrität erzwingen.
Wenn ich du wäre, würde ich Inno wählen, weil es das zuverlässigste ist. Verwenden Sie MyISAM nur für bestimmte Zwecke, wenn Sie dies benötigen.
Sie können Ihre Datenbank so konfigurieren, dass beim Erstellen neuer Tabellen standardmäßig InnoDB verwendet wird.
quelle
Da verschiedene Speicher-Engines verfügbar sind, gibt es nur wenige Gründe, weder die MyISAM- noch die InnoDB-Engine zu verwenden. MyISAM funktioniert in den meisten Situationen. Wenn Sie jedoch im Vergleich zu Ihren Such- und Auswahlvorgängen eine hohe Anzahl von Aktualisierungen oder Einfügungen haben, erzielen Sie mit der InnoDB-Engine eine bessere Leistung. Um die beste Leistung von InnoDB zu erzielen, müssen Sie die Parameter für Ihren Server anpassen. Andernfalls gibt es keinen Grund, ihn nicht zu verwenden.
Die MERGE-Engine ist eine äußerst effektive Methode zum Abfragen von Daten aus mehreren identisch definierten Tabellen. Die MEMORY-Engine ist der beste Weg, um eine große Anzahl komplexer Abfragen von Daten durchzuführen, deren Suche auf einer festplattenbasierten Engine ineffizient wäre. Die CSV-Engine ist eine großartige Möglichkeit, Daten zu exportieren, die in anderen Anwendungen verwendet werden könnten. BDB eignet sich hervorragend für Daten mit einem eindeutigen Schlüssel, auf den häufig zugegriffen wird.
quelle
Vielleicht erhalten Sie hier weitere Informationen: https://en.wikipedia.org/wiki/Database_engine
quelle