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

Общие поля вынести в одну таблицу, а все остальные пихать

в jsonb рядом ?

41 ответов

12 просмотров

потом может быть трудности с поиском по этим данным

ciplenok- Автор вопроса

Я тоже вижу в этом риск) Насколько знаю, по jsonb искать можно, но это так себе затея

ciplenok- Автор вопроса
Nickelodeona K
для чего там еще индексы?

Индексы туда не накидывал. Вот сейчас про это читаю

Nickelodeona K
для чего там еще индексы?

то есть индексы будут работать норм с данными без схемы?

ciplenok
Я тоже вижу в этом риск) Насколько знаю, по jsonb ...

Зависит от целей, кмк. Далее - от размера jsonb и строки

ciplenok
Я тоже вижу в этом риск) Насколько знаю, по jsonb ...

А с чем Вы сравниваете, извините? Где-то есть какие-то "волшебные" индексы и неземные структуры данных для оптимизации такого поиска, что ли? Лично я вот тут https://www.mongodb.com/docs/manual/indexes/ их не вижу. Невнимательно смотрю?

ciplenok- Автор вопроса
Yaroslav Schekin
А с чем Вы сравниваете, извините? Где-то есть каки...

Я в целом про то, что в json долго что-то искать

ciplenok- Автор вопроса
ciplenok
Я в целом про то, что в json долго что-то искать

Послушайте... вот мне может в целом казаться, что массивы [используя только сравнения] долго как-то сортировать, аж O(n log n). Проблема тут в том, что сравнивать это не с чем, метода с лучшей асимптотикой существовать не может. Вот поэтому я и спрашиваю — долго по сравнению с чем, конкретно?

с классическими реляционными данными?

ciplenok- Автор вопроса

Если сравнивать с методом, когда для каждой категории создаем отдельную таблицу. Одна таблица с общими полями для всех объявлений и много таблиц со спец полями для каждой категории

Volodymyr а
с классическими реляционными данными?

Ну это же не Вы утверждали (я хотел выяснить, что именно имели в виду @ciplenok57 и @ask_ai)...

ciplenok
Если сравнивать с методом, когда для каждой катего...

Ага. И в условной "монге" это будет быстрее, потому что?

ciplenok- Автор вопроса
Yaroslav Schekin
Ага. И в условной "монге" это будет быстрее, потом...

В монге в рамках одной коллекции могут быть данные с разными ключами. Не встаёт проблема, что у тебя будет 20 таблиц из-за 20 категорий

ciplenok
В монге в рамках одной коллекции могут быть данные...

И от jsonb с GIN индексом в PostgreSQL это существенно отличается... как?

ciplenok
В монге в рамках одной коллекции могут быть данные...

> Не встаёт проблема, что у тебя будет 20 таблиц из-за 20 категорий Да, кстати... а почему это проблема?

ciplenok- Автор вопроса
Yaroslav Schekin
И от jsonb с GIN индексом в PostgreSQL это существ...

Тем, что монга это чистый nosql, а jsonb это нашлепка сверху sql бд. Интуитивно nosql должна работать лучше

наоборот: монга это чистая нашлепка без нормального sql, отношений и контроля целостности. Интуитивно она более ограничена в возможностях, а еще занимает очень много места и работает в несклько раз медленнее.

ciplenok
Тем, что монга это чистый nosql, а jsonb это нашле...

Нда. Т.е. всё свелось к "волшебным индексам и неземным структурам данных для оптимизации такого поиска". ;( А benchmarks PostgreSQL vs то-что-думаете-использовать Вы видели / делали? > Интуитивно nosql должна работать лучше Интуиция тут может подвести — ярлык "NoSQL", наклеенный на какую-то СУБД, не делает её быстрее (а её авторов — более компетентными в реализации каких-то структур данных и т.д. и т.п.).

D
наоборот: монга это чистая нашлепка без нормальног...

на запись, кстати, быстрее часто (максимальное лэтэнси, правда, может быть больше, чем у пг, но минамальное -- меньше)

Alexey Ermakov
на запись, кстати, быстрее часто (максимальное лэт...

да, обновлять скажем отдельные числа в монге может быть быстрее, чем обновлять жсонб, но медленнее, если все раскидано по полочкам

D
да, обновлять скажем отдельные числа в монге может...

Для решения "нужно персист хранилище, чтобы побыстрому втолкать, а потом понемногу разбирать и в кликхаус" - сойдет. Но я бы тогда, наверное, сциллу взял.

Yaroslav Schekin
Нормальные benchmarks в студию, что ж. ;)

https://www.diva-portal.org/smash/get/diva2:1595003/FULLTEXT01.pdf вот тут некоторые кейсы есть. на геоданных пг быстрее во всех случаях

Alexey Ermakov
https://www.diva-portal.org/smash/get/diva2:159500...

Ну и вот там написано: The result from the benchmarking show that the latency for Insert and Update operations were lower for MongoDB, while the latency for Read was lower for PostgreSQL. Но вот на этом месте я как-то стал сомневаться, что вообще стоит читать дальше (см. подчёркнутое). > The results from the source code analysis show that both DBMSs have a complexity of O(n), but that there are multiple differences in their software architecture affecting latency Как ни читай, это феерический бред — потому что одиночная вставка в таблицу у нас`O(1), в индекс `O(log N) (и поиска — тоже) , а если они считали на n вставок и поисков, то должно было получиться O(n) и O(n log n) соответственно. Т.е. такой единой асимптотики в PostgreSQL тупо нет. Опять-таки — нужны нормальные benchmarks.

Yaroslav Schekin
Ну и вот там написано: The result from the benchm...

выше ссылка на бенч от клика. "обычная" пг из коробки - медленней

Alexey Ermakov
выше ссылка на бенч от клика. "обычная" пг из коро...

Вы пропустили слово "нормальные" в моей просьбе показать benchmarks, мне кажется. ;) "Из коробки" (без настроек под "железо" и нагрузку) "обычная пг" предназначен(а) для того, чтобы работать "на кофеварке", в отличие от более новых СУБД, которые подобным не заморачиваются, понимаете? Т.е. увеличение производительности того же PostgreSQL, на том же "железе" и т.п. после tuning в три раза (или даже в шесть-восемь, в исключительных случаях) — это нормально.

Yaroslav Schekin
Вы пропустили слово "нормальные" в моей просьбе по...

я так понимаю, нормальный бенчмарк это где постгрес быстрее всех других? 🙂

Alexey Ermakov
я так понимаю, нормальный бенчмарк это где постгре...

Ты задал верный вопрос в правильном чате 😏

Alexey Ermakov
я так понимаю, нормальный бенчмарк это где постгре...

Нет, Вы понимаете неправильно. Это такой benchmark, где СУБД (и OS, и т.п.) адекватно сконфигурированы специалистами по каждой СУБД (под какой-то вид нагрузки), обеспечивают выполнение тех же (или сходных) требований к надёжности, восстанавливаемости и т.п. и выполняются на том же "железе" (и без параллельной нагрузки и т.п.), и benchmark tools к ним тоже написаны адекватно (т.е. имеют не сильно отличающийся от идеального для данной СУБД overhead). Честные, короче говоря, а не так любимый всеми benchmarketing (к слову, я как-то видел benchmark, где PostgreSQL версии 8-с-чем-то (!) доблестно "побеждает" современный ему Oracle — честностью там и не пахло, разумеется).

Alexey Ermakov
я так понимаю, нормальный бенчмарк это где постгре...

не стоит забывать классику https://youtu.be/VjryXJYATWk?t=3549

Yaroslav Schekin
Нет, Вы понимаете неправильно. Это такой benchmar...

Select 1; Однопоточно, учитывая время холодного старта СУБД

Alexey Ermakov
я так понимаю, нормальный бенчмарк это где постгре...

Обычно описывают железо: - CPU, RAM, диски, как собраны, VM или нет, сеть (если удалённо) - какая ОС стоит - любый настройки ядра/ОС отличные от дефолта - любые репы поставленные поверх дефолта - любые пакеты поставленные поверх дефолта - любые изменния конфигов, отличные от дефолта И сам тест: - как готовилась база — полностью воспроизводимый скрипт или дамп - как нагружалась: какие команды и как запускались, сколько потоков, какое время, и пр. Основная идея — другие на схожем (или идентичном) железе при такой же настройки и подготовке должны воспроизвести ваш результат.

Виктор Егоров
Обычно описывают железо: - CPU, RAM, диски, как со...

+100 Кстати, тесты TPC (публикуемые результаты) делаются именно так, по идее (плюс там должен быть внешний аудит). У стандартизированных, длительно используемых тестов есть другие проблемы, правда — например, производители/авторы конкретных СУБД начинают "затачивать" их под эти тесты, в т.ч. вводя в свои СУБД такие механизмы и настройки, которые полезны, грубо говоря, только для увеличения "попугаев" в этих самых тестах.

Alexey Ermakov
выше ссылка на бенч от клика. "обычная" пг из коро...

Кстати, даже про эту ссылку (и то, что я писал про настройки): настолько могут отличаться результаты после tuning.

Виктор Егоров
Обычно описывают железо: - CPU, RAM, диски, как со...

оба варианта, что я кидал, по моему, достаточно подробно описано, как подготовлены

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

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

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Карта сайта