172 похожих чатов

Всем привет В postgre есть datatype jsonb где можно хранить массив

объектов. посоветуйте в каких случаях лучше хранить таким образом и в каких случаях лучше отказаться и хранить записи в отдельной таблице?

если хранить отдельные записи в junction table записей может быть очень много и соответственно поиск будет дольше.

Были у вас случаи когда вы отказывались от хранения данных в массиве и прибегали к отдельным записям в таблице?

13 ответов

26 просмотров

По умолчанию — junction table, наоборот, хранение в массиве требует обоснования. По отдельным значениям можно создать BTree-индекс, а по значениям внутри array/jsonb только GIN-подобный индекс. Поиск будет быстрее в случае Junction table По статистике 50 на 50, так что лучше конкретно опишите ваш кейс

Если там того json большэ пары сотен байт -- то он тожэ будет храниться в отдельной таблицэ, и поиск быстрее просто так не станет... В общем, на самом деле, нюансов очень много -- но думать что "вот json, всё локально" или "вот массив, всё локально" будет быстрее -- опрометчиво.

Один из самых всратых нюансов -- что в postgres нет индэксов на несколько таблиц сразу. То есть на json можно повесить какой-нибудь GIN индэкс, которые укажэт на записи, в которых два поля изнутри json имеют какое-то значение -- а на две таблицы один-ко-многим такое просто так не повесишь...

Ilya Anfimov
Один из самых всратых нюансов -- что в postgres не...

Хм, а есть пример его эффективности в таком варианте ?🤔

Konstantin Zaitsev
Хм, а есть пример его эффективности в таком вариан...

Не понял. Я говорил про неэффективность, а ты хочешь пример эффективности?

Ilya Anfimov
Не понял. Я говорил про неэффективность, а ты хоче...

Одно индекса с ключами json по сравнению с двумя условно на двух таблицах)

Konstantin Zaitsev
Хм, а есть пример его эффективности в таком вариан...

Запрос типа "товар отвозили на нашем старом каблуке, и среди товаров было офисное кресло" — при нормальной нормальизации базы работает дольше, чем с jsonb

Konstantin Zaitsev
Одно индекса с ключами json по сравнению с двумя у...

Блин, ночь ужэ, мне завтра на работу вставать.

Ilya Anfimov
Блин, ночь ужэ, мне завтра на работу вставать.

Спим🤦‍♀️, просто интересны не синтетические тесты

Konstantin Zaitsev
Спим🤦‍♀️, просто интересны не синтетические тесты

Не, ну ты захотел! (Нет у меня несинтэтических тэстов). (Я и массивы практически не использую. А чужое, что ко мне в руки падает -- лишний раз давать-то не буду).

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта