Всегда ли индекс mongodb "_id" хранится в кеше? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть база данных mongodb, которая имеет несколько коллекций. Есть еще одна коллекция, которая больше похожа на журнал всех событий, происходящих в системе. Мне интересно, когда у меня большая коллекция, которая редко используется, помещается ли индекс _id этой коллекции в ОЗУ, когда с этой коллекцией не происходит никаких операций? Или он просто ожидает на диске, пока не выполнится операция чтения. Моя главная проблема заключается в том, влияет ли размер этой коллекции на производительность других запросов (из-за размера коллекции, в несколько раз превышающего доступную оперативную память).

1 Ответ

1 голос
/ 01 апреля 2020

Они будут заменены на LRU .

Индексы не обязательно должны полностью вписываться в ОЗУ во всех случаях. Если значение индексированного поля увеличивается с каждой вставкой, и большинство запросов выбирают недавно добавленные документы; тогда MongoDB нужно хранить только те части индекса, которые содержат самые последние или «самые правые» значения в ОЗУ.

Чтобы этот индекс помещался в ОЗУ, у вас должно быть не только больше, чем столько ОЗУ доступно, но также должно быть доступно ОЗУ для остальной части рабочего набора . Индексы и рабочий набор должны одновременно умещаться в памяти.

https://docs.mongodb.com/manual/tutorial/ensure-indexes-fit-ram/#indexing правша

...