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

Какъв тип данни да изберете json или jsonb или текст

Ако приемем, че говорите за действителен, строг JSON (без странности като ключове без кавички)...

json не се различава много от text . Не прави много освен потвърждаване на JSON .

jsonb е различен звяр в сравнение с тези два:това е пълноценна структура от данни със собствен вътрешен формат, който има много повече операции, налични при търсения. Например json няма приложим = (оператор за равенство). jsonb има. (text също има, въпреки че е семантично различен.)

Много по-разумно е да се индексира, но трябва да се трансформира напред и назад по време на четене и запис.

Като се има предвид това, jsonb не изглежда като добър избор тук.

... Така че остава само едно решение за вземане:

Искате ли да сте сигурни, че вашата база данни съдържа само валидни JSON стойности във вашата колона? На ниво база данни? Или имате доверие на всеки клиент на тази база данни (сървърни приложения, обикновено) да предоставя само валидни данни?

json е относително безопасен избор и в двата случая. Използване на text теоретично може да подобри производителността с незначителен марж поради липса на валидиране, но ще получите конкретни числа само чрез сравнителен анализ. Но няма да има тази защита срещу стойности, различни от JSON, и случайна грешка в клиента може да остане незабелязана. Тествайте отговорно!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Възможно ли е да се хване нарушение на външен ключ в postgre

  2. има ли начин да се избегне извикването на nextval(), ако вмъкването е неуспешно в PostgreSQL?

  3. Хибернация и база данни с множество наематели с помощта на схеми в PostgreSQL

  4. Pyodbc – Името на източника на данни не е намерено и не е посочен драйвер по подразбиране

  5. Как гарантирате, че стойностите от регистрираща таблица съвпадат с обекти в други таблици?