jsonb

jsonb
jsonb speichert Daten in einer zerlegten binären Form, nicht als ASCII/UTF-8, sondern als Binärcode. Das macht die Eingabe etwas langsamer aufgrund des zusätzlichen Konvertierungsaufwands, aber die Verarbeitung wesentlich schneller, da kein erneutes Parsen erforderlich ist.
jsonb unterstützt auch die Indizierung, was ein großer Vorteil sein kann.
jsonb bewahrt keine Leerzeichen, behält die Reihenfolge der Objektschlüssel nicht bei und behält keine doppelten Objektschlüssel bei. Wenn doppelte Schlüssel in der Eingabe angegeben werden, wird nur der letzte Wert beibehalten.
Es wird empfohlen, dass Anwendungen " JSON -Daten als " jsonb speichern, es sei denn, es gibt ganz spezielle Anforderungen, wie z. B. vererbte Annahmen über die Reihenfolge der Objektschlüssel.
Mit RFC 7159 können JSON-Zeichenfolgen Unicode-Escapezeichenfolgen enthalten, die mit \uXXXX bezeichnet sind. Die Eingabefunktion für " jsonb erlaubt keine Unicode-Escapes für Nicht-ASCII-Zeichen (über U+007F), es sei denn, die Datenbankkodierung ist UTF8. jsonb lehnt " \u0000 ab. Der Grund dafür ist, dass \u0000 nicht im PostgreSQL-Texttyp dargestellt werden kann. jsonb besteht darauf, dass jede Verwendung von Unicode-Surrogatpaaren zur Bezeichnung von Zeichen außerhalb der Unicode Basic Multilingual Plane korrekt ist. Gültige Unicode-Escapezeichen werden in das funktional entsprechende ASCII- oder UTF8-Zeichen für die Speicherung konvertiert. Dies schließt das Falten von Ersatzzeichenpaaren in ein einzelnes Zeichen ein.
Bei der Konvertierung von textuellen ' JSON in ' jsonb werden die in RFC 7159 beschriebenen primitiven Typen effektiv auf native PostgreSQL abgebildet. jsonb weist Zahlen zurück, die außerhalb des Bereichs des numerischen Datentyps PostgreSQL liegen.