Kod
explain SELECT `p`.`name` AS `name` , COUNT( `p`.`name` ) AS `frags`
FROM keal.`killers` k
LEFT JOIN keal.`player_killers` pk ON `k`.`id` = `pk`.`kill_id`
LEFT JOIN keal.`players` p ON `pk`.`player_id` = `p`.`id`
GROUP BY `name`
ORDER BY `frags` DESC , `name` ASC
LIMIT 0 , 50;
FROM keal.`killers` k
LEFT JOIN keal.`player_killers` pk ON `k`.`id` = `pk`.`kill_id`
LEFT JOIN keal.`players` p ON `pk`.`player_id` = `p`.`id`
GROUP BY `name`
ORDER BY `frags` DESC , `name` ASC
LIMIT 0 , 50;
wynik:
Kod
+----+-------------+-------+--------+---------------+---------+---------+-------------------+--------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+---------+---------+-------------------+--------+----------------------------------------------+
| 1 | SIMPLE | k | index | NULL | PRIMARY | 4 | NULL | 232466 | Using index; Using temporary; Using filesort |
| 1 | SIMPLE | pk | ref | kill_id | kill_id | 4 | keal.k.id | 1 | |
| 1 | SIMPLE | p | eq_ref | PRIMARY | PRIMARY | 4 | keal.pk.player_id | 1 | |
+----+-------------+-------+--------+---------------+---------+---------+-------------------+--------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+--------+---------------+---------+---------+-------------------+--------+----------------------------------------------+
| 1 | SIMPLE | k | index | NULL | PRIMARY | 4 | NULL | 232466 | Using index; Using temporary; Using filesort |
| 1 | SIMPLE | pk | ref | kill_id | kill_id | 4 | keal.k.id | 1 | |
| 1 | SIMPLE | p | eq_ref | PRIMARY | PRIMARY | 4 | keal.pk.player_id | 1 | |
+----+-------------+-------+--------+---------------+---------+---------+-------------------+--------+----------------------------------------------+
Jaki index można by dodać żeby to przyśpieszyć ponieważ zapytanie trwa 3-4 sekundy?