PostgreSQLで導入されたJSONBの説明 質問する

PostgreSQLで導入されたJSONBの説明 質問する

PostgreSQLが新しく導入されましたJSONBバージョン9.4では既にトレンドになっていますハッカーニュースPostgreSQL に以前存在していた Hstore や JSON とどう違うのでしょうか?

その利点と制限は何ですか? また、いつ使用を検討すべきですか?

ベストアンサー1

初め、hstoreは、キー => 値のペアのみを保存できる contrib モジュールです。キーと値はtexts のみです (ただし、値は sql も使用できますNULL)。

json& はどちらもjsonb、有効なJSON(そのスペック)。

たとえば、これらは有効な JSON 表現です: nulltrue[1,false,"string",{"foo":"bar"}]{"foo":"bar","baz":[null]}- hstoreJSON の機能と比較するとほんの小さなサブセットです (ただし、このサブセットだけが必要な場合は問題ありません)。

jsonとの唯一の違いはjsonbストレージです。

  • jsonプレーンテキスト形式で保存されますが、
  • jsonbバイナリ表現で保存される

これには 3 つの大きな結果があります。

  • jsonb通常、保存にはより多くのディスク容量が必要ですjson(そうでない場合もあります)。
  • jsonb入力表現から構築するには、json
  • json操作には、(型指定された値に対して何らかの操作を行うたびに解析も行う必要がある)よりも大幅に時間がかかります。jsonbjson

安定版リリースで利用可能になるとjsonb、2 つの主要な使用例があり、簡単に選択できるようになります。

  1. アプリケーションで JSON 表現のみを扱い、PostgreSQL はこの表現の保存と取得にのみ使用される場合は、 を使用する必要がありますjson
  2. PostgreSQL で JSON 値に対して多くの操作を実行する場合、または一部の JSON フィールドでインデックスを使用する場合は、 を使用する必要がありますjsonb

おすすめ記事