Ответы пользователя по тегу MongoDB
  • Как лучше для производительности mongo db?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Mongo и многие документ-подобные системы обычно оптимизируются не так как реляционки а как агрегаты.
    Тоесть ты подготовавливаешь для пользователя полностью самодостаточный документ который за 1 операцию
    извлекается и больше никаких joins не нужно.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует только одна рекомендация по безопасности в таком случае. Ты не должен хранить ключи,
    токены, и пароли в исходнике самого приложения а ты должен его получать откуда-то из специального
    сейфа (Vault).


    API позволяет взять ключ по имени.

    Каждый хостинг-провайдер или платформа предоставляет такой сейф как услугу. Например для Microsoft
    Azure Cloud это Key Vault. Для облака Амазон это AWS Secrets Manager.
    Ответ написан
    Комментировать
  • Как можно, и вообще можно ли хранить фото и видео в базе данных mongo?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Технически - можно. Но MongoDb оптимизирована для хранения документов. И если вместо документов
    туда складывать фильмы то может оказаться так что вы платите очень много за такие блобы которые
    выгоднее держать на файловой системе или на сторедже
    . Привету пример. Если вы храните
    документ в котором десяток текстовых полей и 11 поле - это блоб с фильмом длиной 1.5Гб то
    получается что реально полезная для поиска и индексирования информация составляет
    менее 1% (!)
    от общего размера БД. А все остальное - это балласт. Я как бывший базовик
    привык что в таблицах БД лежит только полезная и нужная для SELECT ... WHERE информация.
    Если эта информация не полезна для поиска - то ей не место в БД.

    Хуже того что эти блобы будут вовлечены в процесс планового бэкапа. Даже если они не изменялись.
    Может возникнуть кейс когда скопировать БД все таки надо. А копировать тяжело. БД уже превысила
    пета-байт просто потому что кто-то захотел фильмы хранить рядом с данными.

    Я не специалист конкретно по Монге но вот тут пишут о реализациях хранения блобов https://www.mongodb.com/developer/products/mongodb...

    Почитайте.
    Ответ написан
    Комментировать
  • Как ускорить count в mongoose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если пролистать до старых страниц, допустим до 5000 страницы, то это происходит очень долго(примерно 10 секунд, даже с индексацией)


    Это нормально. 5000 за 10 секунд - это 500 страниц в секунду. Ни один человек так быстро читать не умеет.
    Если пользователь давит pagedown - то наверное он что-то не так делает. Дай ему опцию goto номер
    страницы.

    Count работает супер медленно, если брать загрузку самых свежих страниц, без него они загружаются за 15мс, но при использовании count (даже при условии того, что кол-во страниц ограниченно 5000, больше не нужно), задержка увеличивается до 3-5 секунд


    Это нормально. Ни в одной БД count не работает достаточно быстро чтобы показывать реал-тайм.
    Вообще если вспомнишь что базы бывают ACID то они считают не актуальное состояние таблицы
    а "срез таблицы в прошлом" на момент начала тразнакции подсчета.

    Запоминай последнее значение count в переменную и транслируй пользователю внизу странички
    как актуальное но в прошлом. Например 15 минут назад.
    Ответ написан
    Комментировать
  • На replit mongodb не записывает данные, что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Никто не захочет разбираться с твоими ботами.
    Если ты пишешь что проблема в Монго - то вот бери 100% рабочий пример

    https://www.mongodb.com/languages/python

    Там 4 строчки которые демонстрируют создание коннекта получение БД и вставку документа.

    Деплой 4 строчки на replit и доказывай что они не работают. Все остальное что ты привел - это рандомный
    шум который мешает пониманию главной причины. Root cause.
    Ответ написан
    Комментировать
  • Как вывести список всех документов в MongoDB?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ответ написан
    Комментировать
  • Как мне загрузить больше 24000 документов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Возможно у UI есть ограничения. Посмотри вот другая утилита есть https://www.mongodb.com/docs/database-tools/mongoi...
    Ответ написан
    Комментировать
  • Оптимизация структуры БД. Какие варианты в данном случае?

    mayton2019
    @mayton2019
    Bigdata Engineer

    Перетащил это всё на MongoDB с такой структурой:

    Справочники остались в MySQL.
    .......
    Какие есть идеи?

    Думаю попробовать перенести структуру на PostgreSQL аналогично MongoDB и использовать

    Дружище. Так жеж не делается в мире Документно-ориентированных БД! В монге ты делаешь не таблицы. А хранилища документов. Где каждый документ - самодостаточен и полностью хранит в себе всю информацию. Грубо говоря никаких СПРАВОЧНИКОВ и СВЯЗНЫХ таблиц у тебя быть не должно. И нельзя джойнить документы. И нельзя джойнить документы с таблицами MySQL.

    Почитай про модель АГРЕГАТОВ в противовес реляционной модели. Это можно найти в книжках типа NoSQL и еще я находил это в доках по Cassandra.
    Ответ написан
    1 комментарий
  • Как хранить запросы mongodb?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Можно посмотреть стандартный туториал по Spring+Mongo https://spring.io/projects/spring-data-mongodb
    Ответ написан
    Комментировать
  • Можно ли сделать быстрый поиск по карте с 1 млн маркеров (MongoDb) и кластеризацией?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почти все гео-поисковые системы для хранения геометрии используют либо quad-tree либо R-tree. К чему здесь Mongo - вообще непонятно. Это бд другого типа. Для документов.

    Бери деревья и используй. Мало памяти - ну решай это быстрыми дисками или просто покупай больше узлов для параллельных поисков.
    Ответ написан
    3 комментария
  • Как хранить html фрагменты в mongodb под управлением mongoose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обсуждение типа в mongodb имеет смысл только в том случае если ты будешь индексировать эти фрагменты или делать с ними какие-то операции поиска. В остальных случаях (когда Mongo используется просто как хранилище строк) - храни как строки.
    Ответ написан