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

Jaki typ danych wybrać json lub jsonb lub text

Zakładając, że mówisz o rzeczywistym, ścisłym formacie JSON (bez dziwactw, takich jak niecytowane klucze)...

json nie różni się zbytnio od text . Niewiele robi poza walidacją JSON .

jsonb to inna bestia w porównaniu do tych dwóch:jest to w pełni rozwinięta struktura danych z własnym wewnętrznym formatem, który ma znacznie więcej dostępnych operacji wyszukiwania. Na przykład json nie ma odpowiedniego = (operator równości). jsonb ma. (text ma też, mimo że jest semantycznie inny).

Znacznie rozsądniej jest indeksować, ale podczas odczytów i zapisów należy je przekształcać w tę i z powrotem.

Biorąc to pod uwagę, jsonb nie wygląda tutaj na dobry wybór.

... Pozostała więc tylko jedna decyzja:

Czy chcesz mieć pewność, że Twoja baza danych zawiera tylko prawidłowe wartości JSON w Twojej kolumnie? Na poziomie bazy danych? A może ufasz każdemu klientowi tej bazy danych (zazwyczaj aplikacjom serwerowym), że dostarcza tylko prawidłowe dane?

json jest stosunkowo bezpiecznym wyborem. Używanie text teoretycznie może poprawić wydajność o znikomy margines ze względu na brak walidacji, ale uzyskasz tylko określone wyniki w testach porównawczych. Ale nie będzie miał takiego zabezpieczenia przed wartościami innymi niż JSON, a przypadkowy błąd w kliencie może pozostać niezauważony. Testuj odpowiedzialnie!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Brak monitu o hasło dla superużytkownika postgresql

  2. hasMany wywołało coś, co nie jest instancją Sequelize.Model

  3. Data i czas w UTC - jak je przechowywać w postgresie?

  4. Sposoby dostępu do bazy danych Oracle w PostgreSQL

  5. Wstawianie NEW.* z ogólnego wyzwalacza za pomocą EXECUTE w PL/pgsql