2012-12-06 11 views
6

Als Titel habe ich eine Weile gesucht und konnte keine Antwort finden. Es gibt nur den Schlüssel an, und der Wert kann nicht länger als 65535 sein, wenn er auf 8.4 steht, aber überhaupt nicht auf der Dokumentation von 9.0 erwähnt wird.Was ist die Größenbeschränkung für PostgreSQL 9.0+ hstore?

+0

Meine Vermutung ist, dass dies jetzt durch die Größe einer einzelnen Spalte (d. H. 1 GB) begrenzt ist - aber das ist auch nur eine Vermutung. Vielleicht haben Sie mehr Glück, wenn Sie diese Frage auf der Postgres-Mailingliste veröffentlichen. –

Antwort

14

hstore ist ein vrlena, und ist durch die maximale Größe von TOAST ed Felder begrenzt, etwa 1 GB.

Ich empfehle nicht, dass Sie irgendwo in der Nähe der Größe gehen. Leistung wird schrecklich sein. Jedes Mal, wenn Sie eine Zeile aktualisieren - einschließlich Zeilen mit Feldern hstore - muss PostgreSQL eine neue Kopie der Zeile schreiben. Unnötig zu sagen, mit Gigabyte-Zeilen wird das kein Spaß sein.

Die Leseleistung ist OK, wenn Sie alle Schlüssel/Werte lesen, aber schlecht, wenn Sie nur einige wenige Schlüssel/Werte selektiv lesen, da die hstore vor dem Zugriff deaktiviert werden muss.

Es ist schwierig, genauere Ratschläge zu geben, ohne Ihr Design und Anwendungsfall zu kennen. die warum dieser Frage.

+0

Nun, ich will nur das Limit wissen, und danke für Ihre Antwort, das ist sehr nützlich. In der Tat tritt eine Serialisierung auf, wenn Sie das Feld schreiben? Klingt wie das ist nicht etwas sehr brillantes dann im Vergleich zu echten NoSQL-Speicher. –

+0

@goodwill 'hstore' ist nützlich, aber es ist keine Datenbank in einem Feld. Ich habe in letzter Zeit ein paar Fragen dazu gesehen, die darauf hindeuten, dass Leute erwägen, ganze sich schnell verändernde Datensätze in einzelnen "hstore" -Feldern zu speichern. Das ist eine schreckliche Idee. 'hstore' ist oft eine gute Alternative zum Speichern von EAV-strukturierten Daten oder der Verwendung von JSON/XML etc, aber es ist mehr auf der Ebene" Dokument "als auf" Datenbank ". Sogar EAV kann besser sein, wenn sich die Daten schnell ändern. –

Verwandte Themen