Die Antwort ist, dass Sie immer messen sollten, vorzugsweise mit Ihren eigenen Daten und Ihrer Arbeitsbelastung, wenn dies möglich ist.
Da die Datenzugriffsmuster von App zu App sehr unterschiedlich sein können, ist es schwer zu sagen und höchstwahrscheinlich unmöglich, eine "beste" Speicher-Engine für alle Workloads zu ermitteln.
Es gibt jedoch sehr vielversprechende Entwicklungen im MySQL-Bereich, nachdem sie letzte Woche an der MySQLConf / Percona Performance Conf teilgenommen haben.
Einige der alternativen Speicher-Engines:
- XtraDB (Fork von InnoDB)
- InnoDB-Plugin
- PBXT
- TokuDB
Außerdem haben Percona, Google usw. Patches beigesteuert, die die Leistung von InnoDB erheblich verbessern. Persönlich führe ich einen OurDelta-Build aus. Es funktioniert gut für mich und ich empfehle, die Builds OurDelta und Percona auszuprobieren.
Wenn es sich nur um ein einfaches Filial- / Berichtssystem handelt, verwende ich MyISAM für seine Rohleistung.
Ich würde InnoDB verwenden, wenn ich über mehrere gleichzeitige Zugriffe mit vielen Schreibvorgängen besorgt wäre, um das Sperren auf Zeilenebene zu nutzen.
quelle
Es gibt eine Reihe von Benchmarks für verschiedene MySQL-Datenbank-Engines. Es gibt einen anständigen Vergleich zwischen MyISAM, InnoDB und Falcon im Percona MySQL Performance Blog , siehe hier .
Eine andere Sache, die zwischen den beiden oben genannten Engines (MyISAM und InnoDB) beachtet werden muss, ist ihre Vorgehensweise beim Sperren. MyISAM führt eine Tabellensperre durch, während InnoDB eine Zeilensperre durchführt. Es gibt eine Vielzahl von Faktoren zu berücksichtigen, nicht nur die tatsächlichen Leistungsdaten.
quelle
Es gibt Funktionen, die Sie aus betrieblichen Gründen sehr nützlich finden, auch wenn Ihre Anwendung sie nicht unbedingt benötigt:
Ungeachtet der Einschränkungen durch Fremdschlüssel möchten Sie InnoDB wahrscheinlich trotzdem verwenden.
Das ist natürlich ServerFault, nicht Stack Overflow. Die richtige Antwort lautet also:
quelle
Mein Hosting-Provider hat uns geraten, MyISAM komplett zu entfernen und auf InnoDB zu wechseln, sofern dies nicht möglich ist.
In unserem Fall hatten wir eine schwere Datenbeschädigung, die einige Male bis einige Male pro Tag auftrat und immer REPAIR TABLE und zugehörige Befehle erforderte, was bei großen Tabellen einige Zeit in Anspruch nahm.
Sobald wir zu InnoDB konvertiert (oder konvertiert wurden), verschwanden die Probleme sofort. Nachteile / Vorbehalte, die wir hatten:
Beachten Sie jedoch, dass dies alles nur für unsere Umgebung usw. gilt und daher möglicherweise nicht generell gilt.
quelle