Вопрос производительности базы данных (MongoDB) - PullRequest
0 голосов
/ 09 декабря 2010

Я создаю веб-приложение для хранения закладок с помощью системы каталогов.Я уже настроил эти коллекции:

  • Path (s)
    ---> Каталоги (встроенные документы)
    ---> Ссылки (встроенные документы)

  • Пользователь (-и)

Поэтому для повышения производительности я должен:
- добавить идентификатор пользователя в созданный путь
- внедрить всю коллекцию путей в конкретного пользователя

Я хочу выбрать вариант 2, но да, я не знаю ...

РЕДАКТИРОВАТЬ:
Я также думал о создании целогоИнтерфейс ajaxified.Таким образом, это означает, что я буду загружать каталоги и ссылки по определенному пути (от зарегистрированного пользователя) через ajax.Таким образом, это быстрее, и мне не нужно трогать пользовательскую коллекцию.Может быть, это что-то меняет?

Как я уже говорил в комментариях, 1 огромная коллекция во всей базе данных кажется странной.Верно?

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

RE: редактирование.Если вы собираетесь хранить все в одном документе и использовать встроенные документы, то при выполнении запросов убедитесь, что вы просто выбираете нужные данные, иначе вы загрузите весь документ, включая встроенные документы.

1 голос
/ 09 декабря 2010

Что ж, основная цель mongoDB - поддерживать избыточные данные. Я рекомендую вариант second лучше, потому что в вашем сценарии я чувствую, что если вы встраиваете коллекцию путей в конкретного пользователя, то используя толькоодним запросом вы можете получить все данные о пользователе, а также связанные с коллекцией путей, а также.

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

Поскольку mongodb вводит данные в ОЗУ, то после получения данных изколлекция вы можете сохранить его в курсор и из этих данных курсора вы можете получить данные из другой коллекции.Поэтому, если мы посмотрим на производительность, я не думаю, что это сильно повлияет.

...