Código MySQL:
Ver originalFROM dir_usuarios D
, usuarios U
, ap_usuarios A
, avisos E
U.NU_USUARIO = A.NUM_USUARIO
AND D.USUARIO
= U.NU_USUARIO
AND U.NU_USUARIO
= E.NUM_USUARIO
y
Para el parser de MySQL son
equivalentes
Eliminar los INNER JOIN no va a mejorar la performance, e incluso puede empeorarla (por ciertas razones de los algoritmos internos).
En tanto se produzca el producto cartesiano que te describí (del que no me has hecho
ningún comentario), no vas a obtener una performance mejor.
Puedes obtener algunas mejoras relativas usando indices FULLTEXT con los campos que pones en el WHERE, y usando MATCH(...) AGAINST(...), pero eso es todo. Mientras siga existiendo el riesgo de generar esos productos cartesianos... no hay mucho más que hacer.
Mi consejo es que trates de ver si puedes modificar las tablas para resolverlo.
Hay ocasiones en que no se puede resolver un mal diseño, si no es aplicando el bisturí.
Pero, bueno, es tu decisión (o la de quien sea).