Ответы пользователя по тегу MongoDB
  • Логика работы с MongoDB в сервере на Node.JS?

    Stdit
    @Stdit
    При использовании одного соединения с БД есть серьёзный риск перегрузить сокет базы настолько, что именно он станет узким тормозящим местом всего проекта. Это довольно подлый нюанс, который не заметен на этапе тестирования и ввода в эксплуатацию (как и проблема гонок в mongo, но это отдельный разговор). У меня такое было, правда не на mongo, а на pg, но суть от этого не меняется: пока сокет базы занят перекачиванием больших объемов данных на специфических страницах, сайт будет заблокирован. Но и открывать соединение с базой на каждый запрос тоже не самая лучшая идея, так как на открытие, настройку и содержание соединения нужно несоразмерно много ресурсов (в том числе и на сервере БД). Поэтому должен быть пул соединений с БД. Драйверы mysql и pg такой пул имеют, насчет mongodb не уверен, так как не копал устройство драйверов mongo для nodejs.
    Ответ написан
    Комментировать
  • Репликация MongoDB для отказоустойчивости

    Stdit
    @Stdit
    ReplicaSet хорошо документирован, делается легко и быстро. При выходе из строя мастера им автоматически ставится один из слейвов. Существует много драйверов с автоматической поддержкой ReplicaSet, например в драйвере php нужно просто указать список хостов БД.
    Ответ написан
    Комментировать
  • Как обойти отсутствие транзакций в MongoDB?

    Stdit
    @Stdit
    Да, двухфазные коммиты, хранение и проверка состояний транзакций или версий объектов (документов). MongoDB не предназначена для таких задач, это говорят даже сами разработчики. Это просто быстрое и масштабируемое хранилище оъектов произвольной структуры с гибким поиском. Используйте РСУБД. Как правильно заметил Juralis, тот же PostgreSQL имеет богатые и интересные возможности, такие как наследование таблиц, работа с массивами и другими нетипичными для SQL типами данных. Они могут оказаться подходящими под ваши задачи.
    Ответ написан
    Комментировать
  • Хранение изображений в MongoDB — стоит ли?

    Stdit
    @Stdit
    Производительным не получится, если нет большого кластера, который компенсирует сниженную скорость доступа за счёт распараллеливания. Я предпочитаю хранить картинки на отдельном сервере, а в базе ссылки на них. Вот небольшое исследование этого вопроса, правда двухлетней давности: www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/
    Ответ написан
    Комментировать
  • Вопрос о структуре БД mongodb

    Stdit
    @Stdit
    Хранить в разных коллекциях. Особенно, если форум подразумевает такие страницы как «все сообщения пользователя» или «все темы пользователя». Да, структура похожа на реляционную БД, но в этом нет ничего плохого. Основные преимущества данной СУБД (возможность создавать произвольные дополнительные свойства, особено свойства-массивы, и строить по ним индексы, включая частичные) при этом не теряются.
    Ответ написан
    Комментировать