Как уменьшить время ответа на первый запрос в MongoDB? - PullRequest
3 голосов
/ 16 ноября 2011

У меня есть коллекция в MongoDB с 20 миллионами документов и индексом, созданным для коллекции.Я подтвердил, что запрос find () использует индекс (col_1_col_2) (подтверждено с помощью объяснения).Однако я заметил, что самый первый запрос find () за день занимает 5-10 секунд, но все последующие запросы занимают менее 100 мс.

Обновлена ​​статистика БД: db..stats () ns.количество 20135438 размер 5694.57m avgObjSize 296.55146314672 хранилищеРазмер 7109.57m numExtents 35 ниндексов 4 lastExtentSize 1188.86m paddingFactor 1 флаги 1 totalIndexSize 3044.69m indexSizes {" id col: colo2202321321321321: 0321: 0321: 8321: 0321: 0321: 8321: 8321: 0321: 331: 8321: 8321: 0321: 8681: 8321: 831: 832_1322_130: 2: 0, размер: 3154.57m."col1_1": 998706576} ok 1 {top: 1} всего 18 readLock 16

Вопросы: 1 Почему первый запрос занимает больше времени?2 Это связано с загрузкой индекса в ОЗУ?

1 Ответ

0 голосов
/ 16 ноября 2011

проверить активность диска во время этого первого запроса. Это может быть связано с подключением данных с диска в оперативную память.

Если вы используете Linux: iostat -m 1 вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...