Ваш первый запрос вернул все 181 миллион строк за 8,3 миллисекунды. Я думаю, что нет.
Второй запрос, как вы увидите из EXPLAIN SELECT ...
, эффективно использует INDEX(A, B)
. Тем не менее, ему нужно прочитать все 181 «строк» в этом индексе, поэтому это занимает много времени.
Часто в приложениях хранилища данных полезно создавать и поддерживать «сводные таблицы», чтобы ускорить процесс - значительно. Вы можете иметь ежедневный промежуточный итог SUM(B)
для каждого A
, а затем суммировать промежуточные итоги, когда вам это нужно.
Если вы хотите обсудить что-то далее, предоставьте больше подробностей в таблице и запросе.