sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLによって導入されたJSONBの説明

    まず、hstore はcontribモジュールであり、キー=>値のペアのみを保存できます。ここで、キーと値はtextのみです。 s(ただし、値はsql NULLにすることができます sも)。

    両方のjsonjsonb 有効なJSONを保存できます (仕様で定義されています)。

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

    jsonの唯一の違い &jsonb それらのストレージです:

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

    これには3つの主要な結果があります:

    • jsonb 通常、保存にはjsonよりも多くのディスクスペースが必要です (時々そうではない)
    • jsonb jsonよりも入力表現から構築するのに時間がかかります
    • json 操作には大幅にかかります jsonbよりも時間がかかる (&解析は、jsonで何らかの操作を行うたびに実行する必要もあります 入力された値)

    jsonbの場合 安定したリリースで利用可能になります。どちらかを簡単に選択できる場合、2つの主要なユースケースがあります。

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


    1. LogMinerを使用して現在の変更を見つける

    2. SQLite Quote()のしくみ

    3. MySQLの2つの日付の違い

    4. Oracleで日付をフォーマットする方法