У меня есть этот запрос для таблицы с 14 тысячами строк … потребовалось навсегда, чтобы завершить вывод. Вот код:
$query="SELECT j6.Name, j.id,
SUM(j6.pts) + IFNULL(j.pts, 0) AS total
FROM joueurs2006 j6 LEFT OUTER JOIN joueurs j
ON (j.Name = j6.Name)
WHERE j6.pts != 0 GROUP BY j6.Name
ORDER BY total DESC
LIMIT 0,15";
Я хочу собрать статистику прошлых сезонов (все они хранятся в joueurs2006) и добавить статистику текущего (joueurs). Это работало хорошо в течение нескольких лет, но теперь с 14K строк в таблице, это занимает целую вечность. Спасибо за советы!
Это ваш запрос:
SELECT j6.Name, j.id, SUM(j6.pts) + IFNULL(j.pts, 0) AS total
FROM joueurs2006 j6 LEFT OUTER JOIN
joueurs j
ON j.Name = j6.Name
WHERE j6.pts <> 0
GROUP BY j6.Name
ORDER BY total DESC
LIMIT 0, 15;
Для этого запроса вы хотите, чтобы индексы joueurs2006(name, pts)
а также joueurs(name, pts)
, Это должно работать лучше.
Других решений пока нет …