Как оптимизировать работу с MongoDB и ускорить запросы | Большая коллекция - 900К записей

preview_player
Показать описание
00:00 - Знакомство с подопытной базой
02:28 - Указывайте набор полей, которые реально нужны для дальшейшей работы
03:07 - Используйте Lean
06:00 - Сортируйте и лимитируйте выборки
06:29 - Индексируйте коллекции
08:34 - Параллельные запросы
09:11 - Выводы
// ------------------------------------------------------------------------ //
// ------- Присоединиться к #BlondieCode -------- //
// ------------------------------------------------------------------------ //
// ------------------------------------------------------------------------ //
//------------ Поблагодарить за видео ----------------- //
// ------------------------------------------------------------------------ //
//-----------------------------------------------//
Больше видео на тему IT можно найти по тегу #ityoutubersru
Рекомендации по теме
Комментарии
Автор

Это просто самое лучшее обучающее видео по программированию. Никакой воды, никакого разжевывания соплей. Только полезные советы и реально работающие лайфхаки, которые позволят вам стать настоящим гуру программирования и заработать свой первый миллион.

azh
Автор

Спасиибо)Очень хороший пример разобран. Название и превьюха достойны отдельного лайка)

АнастасияВоронцова-об
Автор

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

siviristm
Автор

Как же мне этого видоса не хватало, больше пасибо. Как обычно годный и полезный видос. 👍

funnyfamily
Автор

Аида, нодежс богиня и ивентлупняша, спасибо за видео

doomymax
Автор

Даже котики не могли успокоить мой пукан до countDocuments(), а потом я посмеялся и поставил лайк =) Приятный видос, хорошая подача, информативно и позитивненько )

pavelstcore
Автор

Это не монгуз молодец. Это Автор видео молодец

ДмитрийАйткулов
Автор

Однозначно подписончик ) как раз мои сервисы будут переводится с мускула на монго ))

danquimby
Автор

У меня был проект jstfun с Strapi (классная штука (api как лего) test it), в котором из-за кривизны рук оказалось 1кк коллекций, по (внезапно) германской философии, это был парсер с de.вики которой захватил все, от категорий до сносок. Мне помог какой-то скрипт с gist, которой отфильтровал и закоментил “лишнее” а это лишнее оказалось, нужным разделы, категории, etc в общем на мониторе я увидел кашу. Long story, надеюсь мораль ясна.
Чужими методами, можно решить проблему, но иногда это намного дольше чем решить ее самому.

Одна из цитат которая вылетала с парсера:

И.Кант, Имей мужество пользоваться собственным умом.

Спасибо Ася, теперь я понимаю mongoo.

romanromaniv
Автор

Отличное видео!
А стоит ли ожидать что-то связанное с миграциями для монго?

MrAmir
Автор

С монго дел не имел, но очень плотно общаюсь с SQL. ставка в коментариях об времени выполнения:
если индексы правильно прописаны, и запрос выполняется не на домашнем ПК, а на чём-то подходящем под БД-сервер - должно меньше секунды, не так уж и много записей. Хотя странный синтаксис count...

P.S. ааааа, хех, смешно)
P.P.S. ааа, хитро-хитро, очень хороший пример.

DarkErit
Автор

Ты супер.
Вопрос: когда мы возвращаем с .lean(), то это годится только для респонс? То есть мы уже не можем дальше работать с этими данными, как с объектами монго - изменять что то, перезаписывать, сохранять сразу в базу и тд.?

iGotton
Автор

Спасибо, очень интересно и классные рисунки = )

yozheeg
Автор

А тема курсора почему не затронута?
Совет индексации всего вдоль и поперек на грани с его вредностью - был у меня проект в котором индекс весил почти в 4 раза больше чем сама база а все из за большого количества кросс индексов с разным направлением. Со временем все это начало жестко лагать, а связано это было с тем, что размер индекса сильно превысил объемы оперативной памяти, в таком случае монга будет вынуждена перегружать часть индекса на жесткий диск и тормоза будут интермиттент(что в простонародии-" то есть, то нет"). Конкретно в том случае выснилось еще что сам жесткий диск время от времени ведет себя неадекватнои проблему решили его заменой... на время... . Позже таки имела место быть оценка и настройка индексов с их сокращением и изменением последовательности запросов в сложных случаях.
Правильно составлять запросы нужно уметь и в зависимости от этого составлять индексы и наоборот.

maxjustmax
Автор

Можно сделать сравнение с SQL (а работаю через Node.js) ?

ЭдуардЗайдуллин-чи
Автор

почему не использовала console.time()? Забыла?)

zpv
Автор

Ась, а не хочешь заделать ролик про графики на js или что-то типа обзора js либ для построения графиков? Наткнулся на проблему тормозов при построении графиков с большим количеством точек (не очень силён во фронте)

СергейК-эх
Автор

А я уже как полгода ушел с монго и гуся на связку PostgreSQL + sequelize + TypeScript. Методы схожи, так что переход был не столь критичен

bryuhanovdima
Автор

Я не имел дело с mongoos, но в mongoshell .sort() работает над курсором. Я не понимаю, как дополнительная сортировка результатов может ускорить запрос. Второй момент - уменьшение количества полей почему влияет на время? На память - да, а время почему? Если основное время занимает поиск, то объем выдачи и время у меня связать не получается. Если это особенность mongoos, то я бы это указал обязательно, потому что в php и go это работает вообще не так. И про пагинацию на основе limit я бы чуть подробнее рассказал, чтобы не было граблей с использованием skip. Потому что такой пропуск очень неэффективен в mongo.

ЕвгенийУгожаев-ьи
Автор

Что, в нереляционных бд есть индексы? А зачем тогда реляционные нужны, только для join-ов?

ИловМакс