Ответы пользователя по тегу MongoDB
  • Как сжать базу данных в mongodb?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    можно чистить коллекции командой compact, может немного просесть перформанс, поэтому лучше выбрать время когда поменьше нагрузки

    коннектишься к монге, выбираешь базу, выбираешь коллекцию и вперед

    use mybase
    db.runCommand( { compact: "mycollectionname" })
    Ответ написан
    Комментировать
  • Как реализовать ТОП просмотров за день, неделю и месяц?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В свободное от нагрузки время аггрегировать данные за прошлые периоды.
    Прошел день, за прошлый день посчитал, добавил в отдельную таблицу сумму одной строкой и прошлый день весь можно грохнуть.
    Ответ написан
    Комментировать
  • Дамп Mongodb, как ускорить?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    надо выяснить текущую скорость и где бутылочное горлышко.
    Если упирается в скорость чтения - единственный вариант снепшоты
    Если упирается в скорость записи - есть разные варианты
    Если в CPU (что врядли) - посмотреть опции дампа
    Если бэкап по сети идет?

    Да и текущий дамп во что делается? в архив, в сырой формат? командную строку привести?

    p.s. 2 терабайта - это большой объем.
    Но на ssd по идее должно давать гигабайты в минуту, а это значит что должно занять явно меньше суток, часов 10-15. Тут по железу надо смотреть.

    В общем приведи командную строку целиком и расскажи что за соурс и таржет, какая нагрузка на cpu/hdd/сеть
    Ответ написан
    Комментировать
  • Как сделать папку данных MongoDB на nfs?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Если стартовать mongod от юзера, то есть

    sudo mongod --dbpath /mnt/share3 --bind_ip 127.0.0.1,10.1.1.32

    Так это не от юзера, а от суперюзера (рута)

    10.1.1.30:/mnt/pool/DBASE /mnt/share3 nfs rw,relatime,user,bg,hard,nolock,noatime,nointr 0 0

    user позволяет обычному юзеру маунтить папку, правда я забыл не уверен какие права при этом получаются

    Попробуй маунтить сразу от конкретного юзера
    10.1.1.30:/mnt/pool/DBASE /mnt/share3 nfs rw,relatime,uid=mongouser,gid=mongouser,bg,hard,nolock,noatime,nointr 0 0

    и /mnt/share3 должна принадлежать mongouser
    Ответ написан
    3 комментария
  • MongoDB best practices. Что практичнее - вложенность или связи таблиц?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Если вам нужны связанные таблицы, то зачем выбирается MongoDB, а не любой SQL вариант?
    Практичность лучше меряется перфоманс тестами, а в данном случае все слишком общее - объем и тип свойств неизвестен, таблиц в монго как таковых нет, есть коллекции.
    Количество объектов неизвестно.
    Если объем базы планируется небольшой (до пары гигабайт), то в принципе и не важно.
    Ответ написан
  • Можно ли бекапить mongodb сразу на удаленный хост?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    вместо --out укажите --archive, тогда все коллекци в один файл будет складываться.
    Если не указать имя архива, будет как раз идти в stdout, где вы его ловите через | ssh

    mongodump --archive | gzip -c | ssh user@remotehost "cat > /path/to/dump.gz"

    p.s. А еще можно просто подключить удаленный комп через nfs или sshfs
    Ответ написан
    5 комментариев
  • Как добавить в mongodb переменную для бота вк?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Не тырить непонятный вам код, а взять его легально и получить инструкцию, что должно быть в базе.
    Тем более что есть же прямые контакты у кого спросить. Или вы думаете кому-то интересно знать наизусть все исходники всех ботов?
    Ответ написан
    Комментировать
  • Как запустить mongodb в windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Ошибку выдает клиент.
    А что на сервере?
    Он точно запущен?
    Есть лог, со строкой что сервер запущен и listening?
    Тем более, что ты говоришь что порт не занят согласно netstat.

    Проверь конфиг сервера - точно ли он слушает на 27017 и точно ли слушает 127.0.0.1 а не какой-нить ipv6 под дефолту
    Ответ написан
  • Можно ли MongoDB использовать вместо MySql для обычных задач?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Так что MongoDB перекрывает основные функции MySql?


    Основная функция mysql и всех других реляционных баз данных - реляции.
    То есть работа с множественными таблицами и связями между этими таблицами. Все эти join

    Если вам это не нужно, вы можете придумать свою логику хранения данных и хранить хоть в монго, хоть в csv файле
    Ответ написан
    Комментировать
  • MongoDB создает не нужную мне бд. Почему?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    А где в вашем подключении к монгодб выбор базы?
    Либо перед запросом выполните use rusterscluster, либо в настройках подключения следует указывать базу по умолчанию.
    Подозреваю, что в настройках у вас прямо так и указано db=dbname, как это было в каком-то примере.
    Ответ написан
    Комментировать
  • Целесообразно ли хранить данные с временными метками в MongoDB?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    mysql проще.
    хранить в монго время/цену, еще и так часто меняющиеся - неправильно
    И на самом деле освоить timeseries DB совершенно несложно. Посмотри influxDB
    Ответ написан
    3 комментария
  • Как исключить определенные коллекции при создании дампа базы данных?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    --excludeCollection <имя>
    Можно перечислить несколько.

    $MONGODUMP_PATH -d $MONGO_DATABASE --excludeCollection sessions --excludeCollection analytics --excludeCollection counts


    p.s. https://docs.mongodb.com/manual/reference/program/...
    Ответ написан
    1 комментарий
  • Какую связку технологий выбрать для реализации проекта с 5000 онлайном?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Зависит от того, какую среднюю нагрузку на сервер дает среднестатистический пользователь, как часто они это делают, какие возможные пики.
    Просто количество пользователей - ни о чем.

    Например простой форум с 5000 единовременным онлайн можно даже на среднестатистическом современном ноутбуке хостить. Под виндой.
    Ответ написан
    1 комментарий
  • Насколько правилен такой подход?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Можно просто периодически запускать мусорщик, который будет сканировать все статьи и помечать удалять неиспользуемые картинки.

    Например запускается проверка, обновляется таймстамп в базе картинки, которая была найдена. затем сортировка по таймстампу покажет какие картинки не были найдены во время этой проверки.

    Можно просто добавить такую опцию в админку и запускать вручную, или раз в неделю/месяц в момент низкой активности.

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

    Раскидывать файлы по каталогам можно как удобно. Если ссылка на файл в базе - то вообще нет никаких особых правил, просто для удобства обслуживания хранить так, чтобы не тормозила файловая система (например не больше нескольких тысяч файлов в одной подпапке).
    Ответ написан
    Комментировать