2012-12-06 8 views
6

タイトルとして、私はしばらくの間探していて、答えを見つけることができませんでした。キーと値は、8.4のときは65535を超えることはできませんが、9.0のドキュメントではまったく言及されていません。PostgreSQL 9.0+ hstoreのサイズ制限はいくらですか?

+0

私の推測では、これは現在単一の列(つまり1GB)のサイズによって制限されていると思われますが、もう一度考えてみてください。この質問をPostgresのメーリングリストに投稿すると運が増えるかもしれません。 –

答えて

14

hstoreは、可変サイズであり、最大サイズはTOAST edフィールド(約1GB)で制限されています。

サイズの近くに行ってはいけません。パフォーマンスはひどくなります。 hstoreフィールドの行を含む行を更新するたびに、PostgreSQLはその行の新しいコピーを書き込む必要があります。言うまでもなく、ギガバイトの行は楽しいものではありません。あなたはすべてのキー/値を読み取るが、貧しいている場合hstoreがアクセスする前にデTOAST編でなければならないとして、あなたが選択、わずか数のキー/値を読んでいる場合

読むのパフォーマンスはOKになります。

デザインや使用例を知らなくても、より具体的なアドバイスをするのは難しいです。この質問のなぜですか?

+0

さて、私は限界を知りたいと思っています。あなたの答えに感謝します。これは非常に便利です。フィールドを記述すると、実際にはシリアル化が行われますか?純粋なNoSQLストレージと比較して非常に鮮やかではないようなサウンドです。 –

+0

@goodwill 'hstore'は便利ですが、データベースインフィールドではありません。私は最近、人々が急速に変化するデータセット全体を単一の 'hstore'フィールドに保存しようとしていることを示唆していることについて、いくつかの質問を見ました。これはひどい考えです。 'hstore'は、しばしばEAV構造のデータを格納するか、JSON/XMLなどを使用するのに良い選択肢ですが、"データベース "レベルよりも"文書 "のほうが多いです。たとえデータが急速に変化していても、EAVでも良いでしょう。 –

関連する問題