Mysql. php 7. laravel 5.8. vps ubuntu.
Запрос
DB::update('UPDATE lists SET rank=(@cnt:=@cnt+1) WHERE !@cnt:=0 ORDER BY updated_at DESC');
Обновляет рейтинг объектов (числовое поле rank у каждой записи таблицы). Данный запрос в данный момент работает для небольшого количества записей. Работает быстро.
Моделируем ситуацию. 30 тыс. пользователей. Ранг должен обновиться по причине события. Которое может произойти 50-100 раз в час. Целесообразно ли применять данный запрос в данных условиях? Т.е. с частотой 100 раз в час для 30 тыс записей. Можно поставить в крон и обновлять раз в час (план B), но хотелось бы, чтобы юзер видел обновление рейтинга сразу после события. Оценить происходящее в запросе могу только примерно т.к. в рав запросах не разбираюсь. Спасибо.