Fandt selv svaret, måtte adskille forespørgslen i flere underforespørgsler.
SELECT
mq.*,
@indexer := @indexer + 1 AS indexer
FROM
(
SELECT
p.id,
p.tag_id,
p.title,
p.created_at
FROM
`posts` AS p
LEFT JOIN
`votes` AS v
ON p.id = v.votable_id
AND v.votable_type = "Post"
AND v.deleted_at IS NULL
WHERE
p.deleted_at IS NULL
GROUP BY
p.id
) AS mq
JOIN
(SELECT @indexer := 0) AS i
Det forårsagede tilsyneladende en enorm mængde af adgangsgivende rækker for forespørgslen (som pr. EXPLAIN
), men det lykkedes også at rette op på det med ekstra indekser. Det fulde svar på det problem kan findes her:Beregning af rækkeindekser med underforespørgsel med joinforbindelser resulterer i A*B undersøgte rækker