In case you have your own slow SQL query, you can optimize it automatically here.
For the query above, the following recommendations will be helpful as part of the SQL tuning process.
You'll find 3 sections below:
ALTER TABLE `cc6_MensLeague_scoresheets` ADD INDEX `cc6_scoresheets_idx_p1` (`p1`);
SELECT
(@rank := if(@points = points,
@rank + 1,
if(@points := points,
@rank + 1,
@rank + 1))) AS rank,
er.*
FROM
(SELECT
@id := cc6_MensLeague_players.id AS `id`,
@rounds := (ifnull((SELECT
sum(p1.w)
FROM
(SELECT
@r1 := (CASE
WHEN cc6_MensLeague_scoresheets.p1_r1 LIKE '%' THEN 1
ELSE 0 END) AS r1,
@r2 := (CASE
WHEN cc6_MensLeague_scoresheets.p1_r2 LIKE '%' THEN 1
ELSE 0 END) AS r2,
@r3 := (CASE
WHEN cc6_MensLeague_scoresheets.p1_r3 LIKE '%' THEN 1
ELSE 0 END) AS r3,
@r4 := (CASE
WHEN cc6_MensLeague_scoresheets.p1_r4 LIKE '%' THEN 1
ELSE 0 END) AS r4,
(@r1 + @r2 + @r3 + @r4) AS w
FROM
cc6_MensLeague_scoresheets
WHERE
cc6_MensLeague_scoresheets.p1 = @id) p1),
0)) AS `rounds`,
sum((@rounds * 2) + (@rounds * 1)) AS `points`
FROM
cc6_MensLeague_players
GROUP BY
`id`
ORDER BY
NULL) er CROSS
JOIN
(
SELECT
@rank := 0,
@points := -1
) params
ORDER BY
id DESC LIMIT 9