Tenho uma consulta com baixo desempenho e não sei onde está o problema. Uma versão bastante reduzida da consulta, que ainda apresenta o mesmo problema, é:
SELECT members.id,
FROM members
LEFT JOIN ( SELECT
member_id,
GROUP_CONCAT(hobby)
FROM member_hobbies
GROUP BY member_id) AS hobbies
ON member.id=hobbies.member_id
Há um índice primário em members.id
e um índice correspondente em hobbies.member_id
.
Se eu remover o GROUP_CONCAT
a consulta será cerca de 50 vezes mais rápida.
Estou ciente de que o exemplo dado acima pode ser simplificado e não requer a subconsulta, e estou tentando simplificar minha consulta completa.
Gostaria de saber se é possível otimizar a consulta em seu formato atual e onde está o problema.