Ich habe eine Datenbank mit ungefähr 30 Tabellen und 5 Tabellen davon sind schreibintensiv.
Ich überlege
Konvertieren Sie 5 schreibintensive Tabellen, um die InnoDB-Engine zu verwenden, und behalten Sie den Rest auf der MyISAM-Engine
Konvertiere alle Tabellen, um die InnoDB-Engine zu verwenden.
Ich frage mich, welcher Ansatz besser ist?
Genauer gesagt
Der Grund, warum ich eine Tabelle auf MyISAM-Engine behalten möchte, ist, dass einige von ihnen ungefähr 1.000.000 Zeilen haben. Ich bin mir nicht sicher, wie lang es für Abfragen wie "SELECT COUNT (*)" in diesen Tabellen nach der Umwandlung in InnoDB sein wird.
Ich habe keinen Test gemacht. Ich bevorzuge es, einige Ratschläge von jedem von Ihnen zu bekommen, bevor ich den Wechsel starte.
Heutzutage verwende ich immer InnoDB, besonders in den schreibintensiven Tabellen, die Sie erwähnen, wo MyISAM unter der vollständigen Tabellensperrung leidet. Hier ist ein direkter Vergleich.
Gründe für die Verwendung von MyISAM:
Gründe für die Verwendung von InnoDB:
Das obige wurde aus diese Seite , die scheinbar nicht mehr funktioniert.
Vor- und Nachteile für jeden.
für (1) Vorteile: weniger Speicherplatzverbrauch, myisam viel schneller für Lese-schwere Zugriffsmuster
Nachteile: Speicher muss zwischen den innodb-Puffern und den myisam-Schlüsselpuffern geteilt werden. Innodb-Tische sind etwa 4x größer als ihre Myisam-Pendants. Programmatic Code muss für Deadlock-Handling angepasst werden.
merken Sie sich innodb auch, wenn Sie eine indizierte Spalte oder einen Primärschlüssel ändern.