PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Обяснение на JSONB, въведено от PostgreSQL

Първо, hstore е модул contrib, който ви позволява само да съхранявате двойки ключ => стойности, където ключовете и стойностите могат да бъдат само text s (стойностите обаче могат да бъдат sql NULL и също).

И двата json &jsonb ви позволява да съхранявате валидна стойност в JSON (дефинирано в неговата спецификация).

F.ex. това са валидни JSON представяния:null , true , [1,false,"string",{"foo":"bar"}] , {"foo":"bar","baz":[null]} - hstore е само малко подмножество в сравнение с това, което JSON е способен (но ако имате нужда само от това подмножество, е добре).

Единствената разлика между json &jsonb е тяхното съхранение:

  • json се съхранява в обикновен текстов формат, докато
  • jsonb се съхранява в някакво двоично представяне

Има 3 основни последствия от това:

  • jsonb обикновено отнема повече дисково пространство за съхранение, отколкото json (понякога не)
  • jsonb отнема повече време за изграждане от входното си представяне, отколкото json
  • json операции отнемат значително повече време от jsonb (&синтактичният анализ също трябва да се извършва всеки път, когато извършвате някаква операция в json въведена стойност)

Когато jsonb ще бъде наличен със стабилна версия, ще има два основни случая на употреба, когато можете лесно да избирате между тях:

  1. Ако работите само с JSON представянето във вашето приложение, PostgreSQL се използва само за съхраняване и извличане на това представяне, трябва да използвате json .
  2. Ако извършвате много операции върху стойността на JSON в PostgreSQL или използвате индексиране в някое JSON поле, трябва да използвате 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. Проблеми с връзката с SQLAlchemy и множество процеси

  2. Копирайте таблица (включително индекси) в postgres

  3. Когато автовакуумът не вакуумира

  4. Oracle еквивалент на Postgres' DISTINCT ON?

  5. PostgreSQL 9.1:Как да свържете редове в масив без дубликати, ПРИСЪЕДИНЕТЕ се към друга таблица