Есть отличный проект Nakama https://heroiclabs.com но я продолжаю использовать свою реализацию Leaderboards и Profile Storage.
Вчера сделал небольшую оптимизацию SQL-запроса (да, я тот еще SQL-разработчик). Вместо нескольких запросов сделал один, который объединил в себе вставку, обновление и условие обновления.
'INSERT INTO `some_table`' + ' (`user_id`, `timestamp`, `user_name`, `score`)' + ' VALUES(?, NOW(), ?, ?)' + ' ON DUPLICATE KEY UPDATE' + ' `timestamp`=NOW(), `user_name`=?,' + ' `score`=GREATEST(`score`, VALUES(`score`))';
Для работы этого запроса поле user_id должно быть UNIQUE.