powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Хранение деревьев в MongoDB
16 сообщений из 16, страница 1 из 1
Хранение деревьев в MongoDB
    #39304223
prog_130
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Прошу совета, решил попробовать использовать в проекте документоориентированную БД.
В БД необходимо хранить дерево (каталог). Конечным элементам дерева будут соответствовать некоторые коллекции.
Скриптовым языком был выбран node.js. Если у кого есть опыт, поделитесь, как лучше хранить дерево? каждый узел=отдельный документ с собственным id и указанием родительского id? Или хранить все дерево единым объектом со вложенными массивами объектов в качестве дочерних узлов? Какие в таком случае ограничения на документ? И как все это будет парситься? (интересует скорость и наличие готовых npm), спасибо.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39304303
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Храним единым объектом со вложенными массивами.
Элемент массива - это объект, что содержит только необходимую для отображения информацию.
Детальная информация хранится в отдельной колекции, а элемент дерева тупо хранит идентификатор документа из данной коллекции.
Ограничения на документ в MongoDB - это не больше 16 мегабайт и 100 уровней вложенности. Об остальных читайте в документации .
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39304330
Фотография Дедушка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog_130Прошу совета, решил попробовать использовать в проекте документоориентированную БД. ... В БД необходимо хранить деревоа, простите, чем был обусловлен выбор документарной БД (монга) кроме как "попробовать"?
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39304406
prog_130
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дедушкаprog_130Прошу совета, решил попробовать использовать в проекте документоориентированную БД. ... В БД необходимо хранить деревоа, простите, чем был обусловлен выбор документарной БД (монга) кроме как "попробовать"?
Стркутура БД. Статические данные, по которым не будет вестись какого то детального поиска - лишь связь коллекция - узел дерева.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39306244
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog_130Стркутура БД. Статические данные, по которым не будет вестись какого то детального поиска - лишь связь коллекция - узел дерева.
А чем не подходит PostgreSQL, MySQL и любая другая современная СУБД с эффективным хранением того же json? Оно и надежнее монги и, скорее всего, быстрее )
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39306339
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3prog_130Стркутура БД. Статические данные, по которым не будет вестись какого то детального поиска - лишь связь коллекция - узел дерева.
А чем не подходит PostgreSQL, MySQL и любая другая современная СУБД с эффективным хранением того же json? Оно и надежнее монги и, скорее всего, быстрее )
Это Ваше субъективное мнение, или тесты какие есть?
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39307145
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANADPH3пропущено...

А чем не подходит PostgreSQL, MySQL и любая другая современная СУБД с эффективным хранением того же json? Оно и надежнее монги и, скорее всего, быстрее )
Это Ваше субъективное мнение, или тесты какие есть?

По производительности, например, https://habrahabr.ru/post/274313/
Но при этом в Postgre 9.6 уже есть изменение внутри документа, так что на update там все должно быть лучше.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39307164
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3, в комментариях к статье правильно написали, что тесты там - это полный треш.

Смотрим другие
https://www.arangodb.com/2015/10/benchmark-postgresql-mongodb-arangodb/

И видим совершенно другую картину.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39308731
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

ну, там тесты еще больший шлак. Mongo в режиме по умолчанию, насколько я помню, данные на диск скидывает "когда придется", а у PostreSQL при этом не выставлен fsync=off (и прочие аналогичные настройки).
Но вообще как только нужны хоть какие-то гарантии, производительность на запись сводится к IOPSам и умению работать с диском, а этого у PostgreSQL побольше, чем у Монги.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39308764
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3, а ТСу важна производительность записи? Допустим в Postgres она будет на пару миллисекунд быстрее, и что?
Вангую что у него гораздо больше чтений планируется, чем записи. А по чтению Mongo быстрее Postgres.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39308831
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANADPH3, а ТСу важна производительность записи? Допустим в Postgres она будет на пару миллисекунд быстрее, и что?
Вангую что у него гораздо больше чтений планируется, чем записи. А по чтению Mongo быстрее Postgres.

откуда такая уверенность?
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39308836
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivskyANADPH3, а ТСу важна производительность записи? Допустим в Postgres она будет на пару миллисекунд быстрее, и что?
Вангую что у него гораздо больше чтений планируется, чем записи. А по чтению Mongo быстрее Postgres.

откуда такая уверенность?
Уверенность в чём?
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39309653
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3skyANA,
ну, там тесты еще больший шлак. Mongo в режиме по умолчанию, насколько я помню, данные на диск скидывает "когда придется"


Сразу видно, что с MongoDB не работал, зато кучу рекомендаций уже написал.
Нет, ты не прав, MongoDB пишет данные и журнал и флашит на диск. Есть широкие возможности управлением WriteConcern
https://docs.mongodb.com/manual/reference/write-concern/

DPH3а у PostreSQL при этом не выставлен fsync=off (и прочие аналогичные настройки).

Монгу значит для тестов берем в режиме по умолчанию, а у постгриса отключаем флаш? Из тебя бы отменный тестер получился.


DPH3Но вообще как только нужны хоть какие-то гарантии, производительность на запись сводится к IOPSам и умению работать с диском, а этого у PostgreSQL побольше, чем у Монги.
Чего именно там побольше? По подробнее пожалуйста.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39312233
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettСразу видно, что с MongoDB не работал, зато кучу рекомендаций уже написал.
Нет, ты не прав, MongoDB пишет данные и журнал и флашит на диск. Есть широкие возможности управлением WriteConcern
https://docs.mongodb.com/manual/reference/write-concern/

Хм, по умолчанию j:true не выставлено, в этом случае для WhiteTiger журнал пишется на диск раз в 50ms, а не на каждую запись.

HettМонгу значит для тестов берем в режиме по умолчанию, а у постгриса отключаем флаш? Из тебя бы отменный тестер получился.

Да, так как у Постре по умолчанию более "надежные" установки, нежели у Монги. Для тестирования нужно их привести к общему знаменателю. В общем случае, увы, это можно сделать только при работе непосредственно с кодом обоих систем.

Чего именно там побольше? По подробнее пожалуйста.
Опыта работы с разным уровнем граблей и общей заточенности на надежное хранение (как традиционное для классических СУБД).
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39312263
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3Хм, по умолчанию j:true не выставлено, в этом случае для WhiteTiger журнал пишется на диск раз в 50ms, а не на каждую запись.

Вообще-то пишет.
Код: plaintext
For replica sets using protocolVersion: 1, w: "majority" implies j: true, if journaling is enabled. Journaling is enabled by default.

DPH3Да, так как у Постре по умолчанию более "надежные" установки, нежели у Монги. Для тестирования нужно их привести к общему знаменателю. В общем случае, увы, это можно сделать только при работе непосредственно с кодом обоих систем.


У обоих по умолчанию журнал включен, как мы выяснили. Одну СУБД тестировали так, другую сяк, - как следствие тесты можно выкинуть.

DPH3Опыта работы с разным уровнем граблей и общей заточенности на надежное хранение (как традиционное для классических СУБД).

Что-то существенно можешь сказать, какие-то конкретные механизмы, алгоритмы, подходы и т.п.? Иначе это какой-то пук в лужу, уж извините.
...
Рейтинг: 0 / 0
Хранение деревьев в MongoDB
    #39313143
prog_130
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решил зайти, посмотреть, что понаписали в теме, а тут как обычно вечные холивары на тему какая СуБД лучше. При должном усилии можно и саморез забить молотком и гвоздь отверткой вкрутить, но зачем?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Хранение деревьев в MongoDB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]