/ / Ich habe jetzt Datentabellen in Myisam (MySQL). Soll ich Relationstabellen von innoDB verwenden? [geschlossen] - Mysql, Innodb, Myisam

Ich habe jetzt Datentabellen in myisam (mysql). Soll ich Relationstabellen von innoDB verwenden? [geschlossen] - mysql, innodb, myisam

Ist eine Tabelle mit Spalten tid(int) zid(int) direction(tinyint) type(tinyint) mit recht umfangreichen Lese- und Schreiboperationen sowie dem Zusammenfügen mit anderen Tabellen in myisam, sollten Sie besser mit myisam oder innodb arbeiten?

Mir wurde gesagt, dass Innodb schlechter schreiben würdeLeistung als die von myisam. ist das wahr? und innodb hat auch eine Tabellensperre wie myisam, wenn Daten nicht mit Primärschlüssel extrahiert werden. Gibt es irgendwelche Techniken, um Tabellen zwischen Myisam und Innodb zu verbinden?

Antworten:

1 für die Antwort № 1

Standardmäßig sollten Sie immer InnoDB verwenden. Es ist schneller; Es unterstützt Transaktionen, Fremdschlüssel und Sperren auf Zeilenebene. Es ist toleranter gegen Abstürze - rundherum ist es wesentlich besser als MyISAM.

Es gibt einige Situationen, in denen MyISAM-Tabellen erforderlich sein können. Zwei übliche sind:

  • Sie verwenden eine ältere Version von MySQL, die keine Volltext- oder räumlichen Indizes unterstützt, und Sie müssen diese Funktionen aktivieren.

    (Beachten Sie das, wenn Sie sind Wenn Sie Volltextindizes verwenden, ist es ohnehin oft besser, eine externe Suchmaschine wie Sphinx zu verwenden. Die Volltextsuche von MySQL ist nicht besonders gut.)

  • Sie haben einige Tabellen mit ungewöhnlichen Datenzugriffsmustern (insbesondere extrem große Nur-Lese-Tabellen, wie z. B. Protokolle), die unter MyISAM manchmal besser funktionieren.

Sofern Sie nicht sicher sind, dass diese Bedingungen zutreffen, sollten Sie InnoDB verwenden. Es ist fast immer die richtige Wahl.