Что ж, если у вас очень большое количество запросов (как, вероятно, будет делать поисковая система), то вы можете просто выполнить «выборку» запросов. Таким образом, вы можете получать 1000 запросов в секунду, но если вы просто сохраняете счет один в секунду, то в течение длительного периода времени вы получите ответ, который будет относительно близок к «реальному» ответу.
Так работает, например, профилировщик сэмплирования. Каждые n милисекунд он смотрит, какая функция выполняется в данный момент. За длительный период времени (несколько секунд) вы получите представление о «дорогих» функциях, потому что они чаще всего появляются в ваших примерах.
Вам все еще нужно делать «подсчет», но, делая периодические выборки, вместо подсчета каждого отдельного запроса вы можете получить верхнюю границу для объема данных, которые вы фактически должны хранить (например, максимум один запрос в секунду и т. д.)