Frage

Für den gleichen Datensatz, mit meist Textdaten, wie die Daten zu tun (Tabelle + Index) Größe von Postgresql im Vergleich zu derjenigen von MySQL?

  • Postgresql verwendet MVCC, das würde seine Datengröße vorschlagen würde größer sein

  • In dieser Präsentation, die größte Blog-Site in Japan sprach über ihre Migration von Postgresql zu MySQL. Einer ihrer Gründe für die von Postgresql weg war, dass die Datengröße in Postgresql zu groß war (p. 41): Migrating von PostgreSQL zu MySQL bei Cocolog, Japans größte Blog Community

  • Postgresql hat die Datenkompression, so dass sollte die Datengröße kleiner machen. Aber MySQL Plugin hat auch Kompression.

Hat jemand eine tatsächliche Erfahrung darüber, wie die Datengrößen von Postgresql & MySQL miteinander vergleichen?

War es hilfreich?

Lösung

  • MySQL verwendet MVCC als gut, nur Scheck innoDB. Aber in PostgreSQL können Sie Ändern Sie den FILLFACTOR Raum zu machen für zukünftige Updates. Damit Sie kann eine Datenbank erstellen, die Platz hat für aktuelle Daten, sondern auch für einige zukünftige Aktualisierungen und Löschungen. Wann autovacuum und HOT tun ihre Sachen Recht, kann die Größe der Datenbank stabil sein.
  • Der Blog ist über alte Versionen, viel Dinge haben sich geändert und PostgreSQL hat eine viel bessere Arbeit in der Kompression wie es in den alten Tagen.
  • Compression ist abhängig vom Datentyp, sowie Konfiguration und Geschwindigkeit. Du müssen Test, um zu sehen, wie es Arbeits ist Sie Situation.

Ich habe ein paar Konvertierungen von MySQL zu PostgreSQL und in allen diesen Fällen PostgreSQL war etwa 10% kleiner (MySQL 5.0 => PostgreSQL 8.3 und 8.4). Dieses 10% wurde verwendet, um den Füllfaktor auf den aktualisierten Tabellen zu ändern, diese zu einem Füllfaktor gesetzt wurden 60 bis 70.er Geschwindigkeit viel besser war (keine Probleme mehr mit mehr als 20 gleichzeitigen Benutzern) und die Datengröße war stabil, wie gut, kein MVCC gehen außer Kontrolle oder Vakuum zu weit hinter sich.

MySQL und PostgreSQL sind zwei verschiedene Tiere, ist PostgreSQL alles über Zuverlässigkeit, wo MySQL populair ist.

Andere Tipps

Beide haben ihre Speicheranforderungen in ihren jeweiligen Dokumentation:

MySQL: http://dev.mysql.com /doc/refman/5.1/en/storage-requirements.html
Postgres: http://www.postgresql.org/docs/current/interactive/ datatype.html

Ein kurzer Vergleich der beiden zeigen keine eklatanten „zomg PostGres erfordert 2 Megabyte ein Bit-Feld zu speichern“ Typ Unterschiede. Ich nehme an Postgres höher Metadaten-Overhead als MySQL haben könnte, oder hat seine Datendateien in größeren Brocken zu verlängern, aber ich kann nichts klar feststellen, dass Postgres „Abfälle“ Raum für die Migration zu MySQL ist die Heilung.

Ich mag für große Spalten speichern hinzufügen, dass, postgresql nutzt auch sich zu komprimieren ein „ziemlich einfach und sehr schnell Mitglied der LZ-Familie von Komprimierungstechniken“ mit

Um mehr über diese Zeilen lesen, überprüfen http: // www .postgresql.org / docs / 9.0 / statisch / storage-toast.html

Es ist ziemlich Low-Level und wahrscheinlich nicht notwendig zu wissen, aber da Sie einen Blog verwenden, können Sie davon profitieren.

Über Indizes

MySQL speichert die Daten whithin der Index, der sie riesige macht. Postgres nicht. Dies bedeutet, dass die Speichergröße eines B-Baum-Index in Postgres hängt nicht von der Anzahl der Spalten erstreckt sie oder die Spalte, welchem ??Datentyp hat.

Postgres unterstützt auch Teilindizes (z WHERE status = 0), die ein sehr mächtiges Feature baut Indizes über Millionen von Zeilen zu verhindern, wenn nur ein paar hundert benötigt wird.

Da Sie eine Menge Daten in Postgres ablegen werden Sie wahrscheinlich finden es praktisch der Lage sein, Indizes zu erstellen whitout die Tabelle sperren.

Von meinem iPhone gesendet. Sorry für die schlechte Rechtschreibung und Mangel an Referenzen

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