mongodb lte и gte выполнение запроса занимает слишком много времени

Это мой запрос на поиск номера записи за один час

         $rec=0;
         $acst1 = new \MongoDB\BSON\UTCDateTime(strtotime('2017-10-30 21:00:00')*1000);
         $acst2 = new \MongoDB\BSON\UTCDateTime(strtotime('2017-10-30 22:00:00')*1000);

         $collection1 = $db->CR800;
         $filter1 = array(TIMESTAMP=> array('$gte' => $acst1, '$lte' => $acst2));
         $rec= $collection1->count($filter1);

когда я выполняю этот запрос, выполнение занимает 16 секунд, а при удалении больше, чем условие, запрос выполняется всего за 300 мс

в коллекции более 20 миллионов документов

Есть ли способ оптимизировать этот запрос и сократить время выполнения?

0 ответов

Другие вопросы по тегам