Я запускаю mapreduce для создания отчета о деятельности информационного бюллетеня.Тайм-аут MongoDB, когда запрос включается! ==
Чтобы запустить отчет для конкретного бюллетеня я использую:
var query = Query.And(
Query.EQ("NewsletterId", BsonInt32.Create(newsletterId)),
Query.GTE("DateAdded", BsonDateTime.Create(startDate)).LTE(BsonDateTime.Create(endDate))
);
теперь я хочу, чтобы иметь возможность получить сводный отчет о электронной активности на всех бюллетенях (используя тот же MapReduce, но только изменяя запрос). Для этого я использую:
var query = Query.And(
Query.Where(new BsonJavaScript("this.NewsletterId !== null")),
Query.GTE("DateAdded", BsonDateTime.Create(startDate)).LTE(BsonDateTime.Create(endDate))
);
У меня есть множество индексов, который включает в себя NewsletterId и DateAdded, который я думаю, используется в первом запросе, но не второй один, который вызывает его тайм-аут.
Любая оптимизация, которую я могу сделать, чтобы исключить тайм-аут запроса?
Ну .. с меньшим или равным будет меньше записей для сканирования, чем при почти одинаковых значениях во всех случаях. Сколько времени занимает первый запрос для доставки результатов, а также как долго время ожидания второго запроса? –