2016-06-21 6 views
0

設定データを単一のjsonbフィールドに格納するか、各プロパティキーのフィールドを専用にする方が良いでしょうか?PostgreSQL jsonb?

たとえば、このJSONデータ:私は何千人ものユーザーを持っている場合は

{ 
    notifications: { 
    check: { 
     enabled: true, 
     In_delimiters: true, 
     Out_delimiters : false 
    }, 
    battery_low: { 
     enabled: true, 
     battery_power: 0.70 
    }, 
    gps_on: { 
     enabled: true 
    }, 
    gps_off: { 
     enabled: true 
    }, 
    speed_exceeded: { 
     enabled: true, 
     speed: 100 
    } 
    } 
} 

、各プロパティのキーは、DBのサイズは、私は、各プロパティのフィールドを捧げた場合よりも大きく成長すること、各行に複製されますストア値のみ。

この場合のアドバイスは何ですか? jsonbと一緒に行って圧縮するのか?または各物件の申告書を捧げますか?

+0

jsonは非構造化データに適しています。それ以外の場合は使用しないでください。 –

答えて

2

まず、データベースのサイズを考えないでください。最近のストレージは比較的安いです。

使用json又はjsonb構造エントリからエントリに変化

  1. 場合、それはハードリレーショナルデータモデル
  2. 思い付くすることは、データベース
  3. 内部値の多くの処理が存在しません

それ以外の場合は、リレーショナル・データ・モデルを使用します。リレーショナル・データ・モデルを使用すると、リレーショナル・データベースが最も適しています。

データベース内のデータを一切処理せず、ストレージを保存することが重要な場合は、行サイズが2KBを超える場合はjson –を使用すると自動的に圧縮されます。 jsonは、オブジェクトキーの順序、空白、または保持する必要があるオブジェクトキーの重複がある場合にも移動する方法です。

クエリでデータを使用する必要がある場合は、是非jsonbを使用してください。 演算子が高速でインデックスを使用できます。

+0

データベース内の値の_processingを書くときは、どういう意味ですか? – dbf

+0

SQLクエリでJSON関数を使用します。 JSON列のインデックスを使用します。基本的には、JSON値の格納と取得以外に何もしないでください。 –

関連する問題