Какова таблица лидеров лучшей практики с php, mysql, memcached?

Недавно я разработал мобильную игру (LAMP + memcached).

В игре есть таблица очков игрока. В таблице есть member_id , name , score column.

Я хочу показать лидеру (глобальный рейтинг) нашему пользователю.

Просто запросите SELECT * FROM score ORDER BY score DESC и покажите результат.

Но я не думаю, что это хороший путь. Если пользователи достигают 20 миллионов, этот запрос кажется ужасным. Какова наилучшая практика в этом случае? Не могли бы вы дать мне совет?

И как я могу проверить рейтинг конкретного пользователя? Я хочу показать каждый пользовательский ранг, где они есть.

Ну, вы не хотите показывать миллионы пользователей на лидирующей доске?

 SELECT * FROM score ORDER BY score DESC LIMIT 10 

Выберет 10 лучших

Кроме того, если вы хотите отобразить рейтинг пользователей на странице профиля, это должно сделать:

 SELECT COUNT(*) + 1 AS rank FROM score WHERE score > (SELECT score FROM score WHERE member_id = :member_id); 

Вы просто добавляете текущих пользователей member_id к последнему запросу, и он будет считать все строки впереди и добавить 1 к этому.