@EugeneUsachev

Какой тип данных лучше использовать JSON или JSONB?

Хочу сохранять комментарии пользователей в отдельной таблице. Создавать под каждый комментарий строку - бред, так как съест слишком много производительности. Комментарии имеют не только текст, так что хранить их в виде массива строк не выйдет, нужен массив объектов. Комментарии сортировать я не буду, но комментарий можно удалить или изменить, так что я не уверен, нужно ли индексирование. Какой формат данных (JSON или JSONB) лучше использовать в этой ситуации?
И вторая ситуация. Такой же вопрос стоит для хранения сообщений пользователей. Я хочу создать таблицу, строки которой - отдельные переписки, состоящие из массива объектов ( как минимум надо иметь дату и текст, а иногда и автора ).Сообщения можно удалить, но сортировать их точно не надо. Какой тип данных лучше в этой ситуации?
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Какой формат данных (JSON или JSONB) лучше использовать в этой ситуации?

Похоже автор занялся любимой задачей скучающих разработчиков. А именно - ПРЕЖДЕВРЕМЕННОЙ оптимизацией.

JSON и JSONB возникли например из задачи хранения в БД ДОКУМЕНТОВ. Документ - предполагает специфический юзкейс. Например однократное создание и редкую модификацию. И частое чтение с поиском по текстовому индексу например.

Является ли задача автора - подходящей под данный use-case? Чорт его знает. Я-бы сказал что пока нет. Все таки комментарии пользователя это такие себе... частые модификации документа которых хотелось-бы избежать.

И вообще пока не будет создано 2 макета или 2 proof-of-concept с бенчмарками - мы не можем точно сказать что лучше.

Сам-же Бартунов например в одном из своих докладов рассказывал что сама идея затащить в PG документы возникла из идеи работать с properties в одном поле. С такой себе неструктурированной информацией. А сама задача вознила из прикладной проблемы в дизайне базы для системы образования. Им нужно было хранить в строке неспецифицированный лист атрибутов. Это еще не JSON но уже дедушка его. Вот его так порешали. Это похоже на кейс автора? Я-бы сказал что далеко нет.

Вообще чтоб доказать или опровергнуть огульный тезис о JSON-ификации я-бы довел постановку до абсурда. Зачем мы будем трекать комментарии в JSON. Давайте и посты туда-же. И странички. И вообще всю модель положим в 1 документ JSON. Каково а? У нас будет база с 1 единственной JSON строкой которая хранит в себе всё. Технологично? Да. И не запрещается.

Вот как-то так.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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