Ich löse das Problem mit Optimierungshinweisen, indem ich die exakte Join-Reihenfolge im DELETE-Befehl spezifiziere:
delete a, b
from b
STRAIGHT_JOIN a on a.id = b.a_id
where a.id = ?;
MySQL wird dank des Optimierungshinweises STRAIGHT_JOIN.
zuerst b Zeilen löschen