SELECT DISTINCT
user_log.quiz_id AS quiz_id,
quizes.name AS name,
quizes.canvas_url AS canvas_url,
answers.answer_profile AS answer,
answers.image_guid,
answers.description,
user_log.answer_id,
settings.show_profile,
settings.show_image
FROM
user_log
Inner Join quizes ON quizes.id = user_log.quiz_id
Inner Join answers ON answers.id = user_log.answer_id
Inner Join settings ON answers.quiz_id = settings.quiz_id
WHERE user_log.user_id = '123456'
GROUP BY quiz_id
ORDER BY user_log.created_dt asc
And it's running incredibly slow, If I remove the inner join on settings, it flys... but for some reason when I add that one join it goes incredibly slow, too slow..
It may be best to perform two queries then attach them after the fact.
The slow down is due to the exponential nature of joining. When you join a table that has 26666 entries that have to be looked at, it will markedly increase the time required to join.
I would remove the inner join against settings from this query. In a separate query hit against just settings using the IN() statement which in turn uses data collected from your first query results.