En mi experiencia, las subconsultas son a menudo una causa de tiempos de ejecución lentos en las declaraciones SQL, por lo que trato de evitarlas. Prueba esto:
DELETE tname FROM tname INNER JOIN spam ON (tname.old_id = spam.textid);
Descargo de responsabilidad:esta consulta no está probada, ¡haga copias de seguridad primero! :-)