Сейчас в БД 1000+ пользователей. Каждый день они набирают очки. Хочется сделать блок, с топ 5 пользователями (все будет скрыто, кроме кол-ва очков) за неделю.
+ Должно показывать место самого пользователя в данном топе, например 760 + те 5 человек, которые в топе и их данные.
Сама таблица, из которой берутся данные, насчитывает больше 1 миллиона строк.
1. Как такое реализовать?
2. И как это реализовать не убив БД и не повлияв на скорость загрузки страницы т.е. кабинета?
Максим Тимофеев, так каждая запись в таблице рейтинга содержит только одно поле с рейтингом и оно не равно одному, а 0.10-0.30. Все остальные поля в данной таблице имеют важную информацию - страна, ип, сессия, источник
dfhusfhgsuo3, ну так вот когда вносите данные, изменяете пользователя и потом не надо делать адские выборки, а дергаете только юзеров
Ну и кешируете выборку топа
dfhusfhgsuo3, за неделю можно и по той таблице выбирать где куча записей, так как за неделю их будет не миллион
И я бы придумал для этой таблицы автоматическое архивирование переодически. Не думаю, что нужны записи за прошлый год.