Я использую следующий запрос, чтобы создать таблицу лидеров из 10 лучших людей на этой неделе.Как ускорить запрос mysql с использованием кеша
SELECT
users.id,
concat(users.first_name, ' ', users.last_name) as name,
users.picture_url,
MAX(rounds.speed) as speed,
AVG(rounds.accuracy) as accuracy,
SUM(rounds.score) as score,
users.level
FROM users INNER JOIN rounds ON users.email=rounds.email
WHERE DATE(rounds.dateTime) BETWEEN CURDATE()-INTERVAL 1 WEEK AND CURDATE()
GROUP BY users.id
ORDER BY score DESC, speed DESC
LIMIT 10
В настоящее время она занимает около 6 секунд для выполнения данного запроса. Таблица «раундов» содержит около 3000 строк. Скоро он будет намного больше. Поэтому, когда пользователь открывает таблицу лидеров, загрузка занимает более 6 секунд!
Есть ли способ кэширования или улучшения запроса, чтобы он загружался быстрее?
База данных: MySQL Backend: PHP5 Framework: Codeigniter
Это может быть лучше спросил более на [dba.se] (https://dba.stackexchange.com/) –
Но могут быть и другие способы вместо того, чтобы просто улучшать запрос. Как кэширование в CodeIgniter или что-то в этом роде. Вот почему я разместил здесь –