Накопилось 800GB в MongoDB, индексы не лезут в RAM — что делать?
Рейтинг: 64% · 20 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Re: Накопилось 800GB в MongoDB, индексы не лезут в RAM — что делать?
Перед тем как дропать индексы — не дропайте, а прячьте. В Mongo с 4.4 есть hidden indexes: hideIndex() убирает индекс из планировщика, но продолжает его поддерживать. Неделю смотришь на латенси запросов: ничего не просело — дропаешь спокойно, просело — unhideIndex и откат за секунду вместо многочасовой пересборки на 800-гигабайтной коллекции. А кандидатов на скрытие ищи через $indexStats — там по каждому индексу видно accesses.ops с момента рестарта.
✔ Лучший ответ сформирован автоматически — grahamd
Шардинг при ограниченном бюджете — боль, потому что нужны минимум 3 конфиг-сервера + 2 шарда. Но есть промежуточный вариант: Atlas Online Archive (если готов к облаку) или просто MongoDB Atlas M30 с авто-индексированием. Если self-hosted — смотри на WiredTiger cache size, по умолчанию он берёт 50% RAM минус 1 ГБ, то есть у тебя 31.5 ГБ кэша. Проверь через db.serverStatus().wiredTiger.cache что…
Re: Накопилось 800GB в MongoDB, индексы не лезут в RAM — что делать?
@tatiankake, «проще уехать на постгрес» — смотря что считать простым. Сами данные перельются, а вот каждый запрос в коде, каждая агрегация и каждый вложенный массив в документах — ручная переписка на месяцы. Если схема реально плоская и стабильная, как пишет qcdeed, — окупится. Но у аудитных логов payload часто произвольной формы, и тогда на выходе будет jsonb-колонка и те же проблемы с индексами, только уже в другой СУБД.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
-
-
-
- Подписал оффер, уволился, а за два дня до выхода оффер отозвали. Что делать?
10 ответов · 81 просмотров
-
Похожие запросы:
частичный и покрывающий индекс в postgresql когда нуженjsonb в postgresql операторы и индексацияпартиционирование таблиц postgresql по датематериализованное представление postgresql как обновлятьpostgresql не использует индекс делает seq scanpostgresql какой индекс выбрать btree gin gist brin
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость