Запрос выглядит нормально, но убедитесь, что у вас есть правильные индексы :
- для
id
столбца в таблице server
- возможно, первичный ключ, - в столбце
server_id
в таблице server_ratings
,
Если это не поможет, тогда добавьте столбец rating
в таблицу server
и рассчитайте его на постоянной основе (см. этот ответ о заданиях Cron ).Таким образом вы сэкономите время, которое вы тратите на расчеты.Они могут быть сделаны отдельно, например.каждую минуту, но, вероятно, некоторых менее частых вычислений достаточно (в зависимости от того, насколько динамичны ваши данные).
Также убедитесь, что вы запрашиваете правильную таблицу - в вопросе вы упомянули таблицу servers
, но в кодеесть ссылка на server
таблицу.Вероятно, опечатка:)