Frage

ich eine Tabelle mit für Spalten, eine smallint, eine ganze Zahl und zwei Schwimmern. Erwartete Speicher für jede Zeile ist 14bytes (2 + 4 + 2 * 4). Ich habe rund 700.000 Zeilen in meinem Tisch. Ich habe keinen Primärschlüssel und Indizes gesetzt. Während der MyIsam Typ beträgt etwa 10 MB (für jede Reihe von 15b Durchschnitt), nimmt der InnoDB Typ mehr als 30 MB (Mittelwert von 44b). Was bin ich hier? Würde InnoDB haben so viel von Overhead für jede Zeile, oder sind in der Tabelle Statusnummer nicht zu trauen. Ich brauche zum Speichern von Daten, die in GBs laufen, so muß auf dem Speichertyp zu entscheiden, durch verschiedene Parameter wiegen.

War es hilfreich?

Lösung

InnoDB-Tabellen haben mehr Platz in Anspruch nehmen, wenn sie MyISAM verglichen. Ob der Kompromiss zwischen Speichernutzung und der von InnoDB angebotenen Funktionen (Crash-Sicherheit, Transaktionen und Fremdschlüssel) begünstigt InnoDB etwas ist, müssen Sie sich entscheiden. Nachdem ich von MyISAM auf InnoDB geschaltet, würde ich nicht gehen.

Es ist erwähnenswert, dass, wenn Sie gehen wollen vor und verwenden InnoDB, Sie werden auf jeden Fall einen Primärschlüssel (und idealerweise eine kurze) definieren wollen. Dies ist auf die Art und Weise InnoDB WRT Lagerung und andere Indizes verhält. Siehe Seite .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top