PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wyjaśnienie JSONB wprowadzone przez PostgreSQL

Najpierw hstore to moduł contrib, który pozwala tylko na przechowywanie par klucz => wartości, gdzie klucze i wartości mogą być tylko text s (jednak wartości mogą być sql NULL s też).

Oba json &jsonb umożliwia przechowywanie prawidłowej wartości JSON (zdefiniowane w specyfikacji).

Np. są to poprawne reprezentacje JSON:null , true , [1,false,"string",{"foo":"bar"}] , {"foo":"bar","baz":[null]} - hstore to tylko mały podzbiór w porównaniu do możliwości JSON (ale jeśli potrzebujesz tylko tego podzbioru, jest w porządku).

Jedyna różnica między json &jsonb jest ich przechowywanie:

  • json jest przechowywany w formacie zwykłego tekstu, podczas gdy
  • jsonb jest przechowywany w postaci binarnej

Są to 3 główne konsekwencje:

  • jsonb zwykle zajmuje więcej miejsca na dysku do przechowywania niż json (czasami nie)
  • jsonb kompilacja z jego reprezentacji wejściowej zajmuje więcej czasu niż json
  • json operacje zajmują znacznie więcej czasu niż jsonb (&parsowanie musi być również wykonywane za każdym razem, gdy wykonujesz jakąś operację na json wpisana wartość)

Kiedy jsonb będzie dostępny w wersji stabilnej, będą dwa główne przypadki użycia, w których będzie można łatwo wybierać między nimi:

  1. Jeśli pracujesz tylko z reprezentacją JSON w swojej aplikacji, PostgreSQL jest używany tylko do przechowywania i pobierania tej reprezentacji, powinieneś użyć json .
  2. Jeśli wykonujesz wiele operacji na wartości JSON w PostgreSQL lub używasz indeksowania na jakimś polu JSON, powinieneś użyć jsonb .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. INSERT COMMAND ::BŁĄD:wartość kolumny nie istnieje

  2. Pandy zapisują ramkę danych do innego schematu postgresql

  3. Uzyskać domyślne wartości kolumn tabeli w Postgresie?

  4. Jaka jest równoważna składnia PostgreSQL dla Oracle CONNECT BY ... START WITH?

  5. Klucze obce POSTGRESQL Odwołujące się do kluczy podstawowych dwóch różnych tabel