Warum ist es ein Vakuum nicht erforderlich, die Mysql im Vergleich zu PostgreSQL?
Ich bin mehr vertraut mit PostgreSQL als MySQL. Begegnet rundum-Id Fehler einmal mit der PostgreSQL db und dann verstanden die Bedeutung des staubsaugens in der db. Tatsächlich, das war so ein massiver Aufwand die Arbeit zu behandeln(und es war mit einer alten version 7.4.3, die aktualisiert wird, ein paar Monate zurück, haben Sie die autovacuum). Beim Vergleich von MySQL mit PostgreSQL -, davon ausgehen, dass MySQL nicht haben, um mit einer solchen Gemeinkosten wie vacuum in PostgreSQL. Ist diese Annahme richtig?
Ist auch der Grund, warum es ein Vakuum nicht erforderlich, die MySQL im Vergleich zu PostgreSQL? Gibt es noch andere Optimierungs-alternativen ähnlich wie Vakuum existieren für MySQL dbs?
Actually, that was such a massive overhead work to deal with.
Sie sind sich bewusst autovacuum? In der modernen Postgres, Sie abgedeckt sind standardmäßig automatisch, mit Ausnahme für Besondere Bedürfnisse.- Dies war passiert, während der Arbeit mit einem alten system, das hatten postgresql version 7.4.3, wo autovacuum-Funktion war nicht verfügbar. Die db wurde aktualisiert, um die neueste version vor ein paar Monaten und es ist nicht mehr Gemeinkosten jetzt. Tatsächlich habe ich vergessen zu erwähnen, dass es schon eine lange Zeit zurück
- Das erklärt es. Ja, durchaus erwähnenswert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Robert Haas schrieb zu diesem Thema.
Die kurze version ist, dass InnoDB verwendet rollback-logs, mehr wie Oracle design. Nur die jüngste version einer Zeile gehalten wird, auf die Haupt-Tabelle. Es muss verwalten log-Spülung, eine asynchrone/verzögerte operation mit einer entsprechenden Funktion zu PostgreSQL
VACUUM
.Bedeutet dies mehr schreibt, um nicht auf updates und macht den Zugriff auf alte zeilenversionen, die sehr viel langsamer, aber beseitigt die Notwendigkeit für asynchrone und im Vakuum bedeutet, dass Sie keine Tabelle aufblasen Probleme. Stattdessen können Sie große rollback-Segmente oder der Speicherplatz für rollback.
Es ist also ein trade-off, ein design mit einem anderen Satz von Vorteilen und Problemen.
Wenn du redest MyISAM-Tabellen, dann ist es völlig anders. PostgreSQL-Tabellen nicht Essen, Ihre Daten. MyISAM wird. PostgreSQL Tabellen sind transaktional. MyISAM ist nicht. Eine flache Datei erfordert nicht
VACUUM
entweder, das macht es nicht eine gute Idee.MySQL Angleichung der PostgreSQL
vacuum
istOPTIMIZE TABLE tablename
(Die MySQL-docs). Es führt eine ähnliche Funktion in MySQL PostgreSQL in, dass, abhängig von der Speicher-engine verwendet, es reaktiviert ungenutzten Speicherplatz, eine Reorganisation von Indizes und Tabellen, und defragmentiert-Daten-Dateien. Sollten Sie auf jeden Fall führen Sie es in regelmäßigen Abständen, nur wievacuum
in PostgreSQL.