Cita: Vi por Internet un truco como hacer un select dentro de otro selectivo con join donde el select segundo obtiene los id del rango y luego con join muestra los registros igual al id la verdad que mejora la consulta pero al aplicarle el filtro eliminados=no en el segundo select de la consulta esta se hace aún más lenta.
No creas todo lo que leas en Internet. Muchas veces son soluciones que solo aplican a casos puntuales, o escenartios limitados, y el uso de subconsultas es un arma de doble filo.
Para tu caso, eso es basura pura.
Para el caso, la mejor solución ya te la dieron:
pero tu problema es el campo "eliminado", que tioenes definido como VARCHAR, obviamente en función de tu query:
Por eficiencia, es mejor no hacer validaciones de "SI"/"No", sino usar valores de BIT, BOOLEAN o INT, es decir, validarpor 0 ó 1, que es mucho más rápido.
Modifica la tabla y cambia el tipo de columna a TINYINT o BIT, y asignale DEFAULT '0', y realiza la comparación, por ejemplo:
o bien:
No estoy seguro de cuanta mejora lograrás, pero dado tu contexto, es lo más que veo.