Я работаю над сервером для онлайн-игры, которая должна быть способна обрабатывать миллионы игроков. Теперь игра нуждается в рейтингах и хочет показать текущую позицию игроков и, возможно, других игроков вблизи текущей позиции игроков, а также позиции друзей игроков.
Теперь я делал это раньше в MySQL, и я знаю, как это технически возможно, однако я понял, что, поскольку это обычная практика для множества онлайн-игр, для этой цели должны быть существующие библиотеки или базы данных?
Может ли кто-нибудь сообщить мне, какая база данных лучше всего подходит для этих типов запросов и, возможно, любые ранее существовавшие библиотеки, которые уже выполняют большую часть этой работы? Служба сторонних разработчиков с API-интерфейсом тоже будет хорошо.
Надеюсь получить хороший совет, спасибо!
Edit:
Чтобы уточнить, мне нужна база данных, в которой могут храниться миллионы записей (до сих пор MySQL хорош для этого), с которыми я могу легко получить ранжированные результаты. Например, если я получаю определенную строку из таблицы "leaderboard", мне нужно знать, какой ранг имеет эта строка. Этот запрос должен быть меньше 500 мс независимо от размера db.
В качестве альтернативы способ обновления таблицы с текущей информацией ранжирования будет слишком длинным, поскольку этот запрос на обновление не блокирует всю таблицу, а запрос на обновление выполняется менее чем за 30 секунд.
Любые идеи относительно того, какую базу данных/механизм или стороннюю услугу использовать, будут высоко оценены!