Как стать автором
Обновить

Комментарии 14

Отличная Статья! Спасибо Большое.
не подскажите как поступить, при большом объеме данных в документе, когда размер индекса больше чем объем оперативной памяти, и при создание простого запроса, например
db.test.find().count()

съедаеться вся память и сервер начинает дико тормозить
Оптимизация базы данных начинается с поиска причин. Сходу шардить — обычно приводит к распространению пробемы на несколько серверов.
ну причину я написал выше, нехватка объема оперативной памяти, даже после перехода на третью версию монги, которая значительно ужала объем данных, все равно процесс работы с большим объемом данных по отношению к моему серверу не представляется возможным. При работе монго занимает всю память и больше ее не освобождает. Сколько бы не писали что монго умная система и сама распределяем ресурсы, я этого не заметил и другие процессы на этом сервере просто не отвечали.
Это следствие, а не причина. Mне бы в первую очередь стало интересно почему индекс такой большой.
индекс большой из за большого количества записей, в документе 3 индекса, один стандартный "_id_" и два кастомных, int и string(40), количество записей было где около 500млн
А что выводит db.test.stats().indexSizes?
размер такой,
{
   "_id_": 4139540480,
   "word_1": 2916057088,
   "doc_id_1": 1290551296 
}
_id используется? Eсли нет, то пересоздать коллекцию c autoIndexId: false
Под windows я что-то поддержки не увидел.
Фундаментально! Спасибо!
Внушительных размеров работа проделана! Спасибо за статью.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории