Используя Mongoid, если мы изменим один элемент, будет ли он извлекать большой кусок данных и сохранять большой кусок данных? - PullRequest
0 голосов
/ 11 сентября 2010

Предположим, у нас есть что-то, использующее Mongoid:

data: 
  'products':
    "2010-09-07":
      { pageviews: 123
        timeOnPage: 1823 }
    "2010-09-08":
      { pageviews: 138
        timeOnPage: 2607 } 
      ...

Итак, через 2, 3 года будет 700 или 1000 дат, сопоставляющих хэш.Если мы изменим 1 число, потребуется ли считывание всего большого объекта в память, внесение изменений и запись большого объекта обратно на диск?Или Mongoid знает, как перейти в это конкретное место, чтобы изменить это 1 число?

Полагаю, если оно предназначено для чтения одного числа, ему не нужно читать всю структуру в ОЗУ?

1 Ответ

0 голосов
/ 14 сентября 2010

Да, обоим.

Только для чтения выберите поля, см. № 3 в этом списке: http://www.mongodb.org/display/DOCS/Optimization#Optimization-Optimization%233%3ASelectonlyrelevantfields

Типичный пример использования счетчика для увеличения счетчика: http://www.mongodb.org/display/DOCS/Optimization#Optimization-IncrementOperations

...