LINUX.ORG.RU

История изменений

Исправление dizza, (текущая версия) :

Для ранка заводишь отдельный столбец и при любом изменении входных данных (поменялся у кого-то скор, ник, появилась/удалилась запись пользователя) запускаешь джобу пересчета путем отправки сообщения джобе. Только сообщения троттлить нужно, что бы ограничить количество общетов, например не чаще, чем раз в 10 секунд.

Дальше можно тюнить саму таску общета. Вроде как достаточно просто индекса составного, причем для вычисления ранка достаточно данных прямо из индекса, нужно стремиться к этому.

Если и этого мало, выносишь индекс во внешний сервис, который строит кеш в памяти.

Исходная версия dizza, :

Для ранка заводишь отдельный столбец и при любом изменении входных данных (поменялся у кого-то скор, ник, появилась/удалилась запись пользователя) запускаешь джобу пересчета путем отправки сообщения джобе. Только сообщения троттлить нужно, что бы ограничить количество общетов, например не чаще, чем раз в 10 секунд. Дальше можно тюнить саму таску общета. Вроде как достаточно просто индекса составного, причем для вычисления ранка достаточно данных прямо из индекса, нужно стремиться к этому.