Мы запускаем сайт статистики для кучи игр, но после того, как журнал опрокинул более 100 мегабайт, все начинает замедляться, поэтому нам нужно оптимизировать наши запросы.Простой MySQL-запрос занимает много времени
Однако, мы обнаружили, что то, что мы думали, был простой запрос, занимает около 1,5 секунд:
SELECT handle,
(
SELECT COUNT(*)
FROM kills
WHERE killer=p.handle
AND k_team != c_team
AND gid=p.gid
) AS kills
FROM players as p
WHERE gid="3245"
AND team="axis"
ORDER BY kills DESC LIMIT 0, 10;
Это создает список результатов для одной из команд.
Табличные убийства и игроки состоят из 36000 и 4000 рядов с уважением.
Почему этот запрос занимает так много времени и как его можно оптимизировать? Должны ли мы, возможно, заглянуть в ПРИСОЕДИНЕНИЕ?
С наилучшими пожеланиями, лыка
У игрока «Kills» есть ли FK для игроков, кроме gid? Кажется, что вам не хватает команды «team =» axis, если только gid недостаточно. –