Привет, Влад, у вас есть несколько простых стратегий в отношении логов.
Первое, что нужно знать, это то, что Mongo может обрабатывать много последовательных вставок без большого количества оперативной памяти.Причина этого проста, вы только вставляете или обновляете последние материалы.Таким образом, размер индекса увеличивается, но данные будут постоянно выгружаться.
Другими словами, вы можете разбить использование ОЗУ на две основные части: индекс и данные.
Если вы 'При обычном ведении журнала часть данных постоянно стирается, поэтому в ОЗУ действительно остается только индекс.
Второе, что нужно знать, это то, что вы можете уменьшить проблему с индексом, помещая журналы в меньшие сегменты.Думайте об этом так.Если вы соберете все журналы в коллекцию с меткой даты (назовите ее logs20101206
), то вы также сможете контролировать размер индекса в ОЗУ.
По мере пролонгации дней старый индекс будетсброс из оперативной памяти, и к нему больше не будет доступа, поэтому он просто исчезнет.
, но я также рассматриваю возможность использования сценария cron, который создает и удаляет старые данные
Этот метод регистрации по дням также помогает удалить старые данные.Через три месяца, когда вы закончите с данными, вы просто сделаете db.logs20101206.drop()
, и сбор мгновенно исчезнет.Обратите внимание, что вы не освобождаете место на диске (оно все предварительно выделено), но новые данные заполнят пустое место.
Следует ли мне также рассмотреть возможность использования ключей меньшего размера, как это предлагается на других форумах?
Да.
На самом деле, он встроен в мои объекты данных.Поэтому я обращаюсь к данным, используя logs.action
или logs->action
, но внизу данные фактически сохраняются в logs.a
.Действительно легко тратить больше места на «поля», чем на «значения», поэтому стоит сжать «поля» и попытаться абстрагировать его в другом месте.