Prova così:
codice:
select nickname,
max(case when colonna = 1 then conta else 0 end) as quanti_t,
max(case when colonna = 2 then conta else 0 end) as quanti_c,
max(case when colonna = 3 then conta else 0 end) as quanti_v
from (
select nickname, count(t.usersub) as conta,1 as colonna
from users u
left join tracklist t on nickname=usersub
group by u.nickname
union all
select nickname, count(c.usercom),2
from users u
left join comments c on nickname=usercom
group by u.nickname
union all
select nickname, count(v.uservote),3
from users u
left join votes v on nickname=uservote
group by u.nickname ) as t
group by nickname
Una volta eseguita la query aggiungi questi indici:
codice:
alter table tracklist add index it(usersub);
alter table comments add index ic(usercom);
alter table votes add index iv(uservote);
rilanciala e verifica la differenza del tempo di esecuzione.