В чем преимущества формата JSON(b) в PostgreSQL?

Хотелось бы услышать специалистов по PostgreSQL, в чем существенные преимущества работы с форматом JSON(b) кроме того что структуру записей JSON(b) может быть различной?
Сравнительно со стандартной таблицей разбитой на поля и такие же индексы.

Знаю что JSON не хранит информацию о типе данных, плюс этого - экономия места?
К расмотрению берем PostgreSQL версии >= 9.4

1.К примеру мне нужно работать с таблицей логов в 1-10 миллиардов записей.
Сколько места сэкомомиться при JSON(b) по сравнению с обычной таблицей? (укажите в процентах)
2.Производительность SELECT,INSERT,UPDATE,DELETE отличается или нет ?
Если да, то подробно опишите как и в чем.
3.Какие еще плюсы и минусы хранения в JSON(b) по сравнению с простой таблицей?
  • Вопрос задан
  • 2189 просмотров
Пригласить эксперта
Ответы на вопрос 2
@lega
Сколько места сэкомомиться

- В json идет доп. расход места на хранение имен ключей, структуру и синтаксис, (числовые) значения в строковом представлении.
+ Экономия может быть за счет того что нет резерва для строк фиксированного размера.
+ Так же экономия может быть за счет редких полей, которые нужны не в каждой строке таблицы.
Так же json можно хорошо сжать, но поддерживает ли это psql...
Результат зависит от типа данных (и метода хранения).

2.Производительность

В теории должна быть ниже т.к. кроме выделения строки в таблице, нужно выделять место под этот json + его валидация.

3.Какие еще плюсы и минусы

+ Можно хранить сложные структуры данных
+ Позволяет делать прозрачные миграции (развитие проекта без миграций)
- Требует больше места по сравнению с простыми колонками (числа/даты)
Ответ написан
sim3x
@sim3x
json тебе нужен только если у тебя постоянно меняется структура лога
Если у тебя есть конечное число типов логов, то лучше перед сохранением их преобразовывать в свой стандарт
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы