Вы хотели бы реализовать какой-то механизм кэширования, чтобы у каждого пользователя была только гранулярность, скажем, 1 минута.Таким образом, даже если пользователь захочет обновиться, он будет выполнять запрос / сопоставление данных только раз в минуту и в противном случае получит предыдущие результаты.
Если данные между пользователями относительно одинаковы, этоуменьшить общую нагрузку на базу данных еще больше.Предполагая, что каждый пользователь нажимает обновление каждые 10 секунд, и наборы данных являются общими для 10% других пользователей, тогда выполнение кэша для каждого запроса с гранулярностью в 1 минуту переводит вас от
150,000 rows * 6 times per minute * 5000 users = 4.5 billion rows fetched
до
150,000 rows * 1 times per minute * 500 users = 75 million rows fetched.
(например, 1/300 выбранных строк).