Na minha experiência, as subconsultas geralmente são a causa de tempos de execução lentos em instruções SQL, portanto, tento evitá-las. Tente isto:
DELETE tname FROM tname INNER JOIN spam ON (tname.old_id = spam.textid);
Isenção de responsabilidade:Esta consulta não foi testada, faça backups primeiro! :-)