1) Quita el ORDER BY. En ese contexto es innecesario, irrelevante y destruye la performance del sistema, ya que es primer campo y la subconsulta lo usa de PK.
2) Crea un indice en la tabla transacciones sobre el campo CODIGO.
Las cláusulas ORDER BY y GROUP BY se debe usar si y sólo si es absolutamente necesario, y de ser posible sobre campos donde shaya indices definidos.
3) Si Codigo es columna numérica (INT, SMALLINT, BIGINT, etc), no la pongas entre apóstrofes, los apóstrofos se usan para cadenas de texto, no para números. Eso obliga a MySQL a realizar una conversión implícita innecesaria, que también quita performance.
4) Usa IN y no OR para consultar N valores referidos al mismo campo. Es más eficiente.