No estoy seguro de que eso en particular sea la causa, pero claro, todo depende del gestor en concreto, en como resuelva ese cruce.
Yo tengo más experiencia con el Informix, y te puedo decir que ahí no es como te dicen, sino que da igual que la condición de cruce la pongas en el from que en el where.
Por si quieres probarlo, puedes ponerlo así:
Código:
SELECT campo1,campo2,campon
FROM journals join proveedores on journals.id=proveedores.id
WHERE campo1="loquesea"
ORDER BY campo1;
Realmente, dependiendo del número de registros que devuelva la consulta, el problema puede estar en el "order by", pues se tiene que generar una tabla temporal para almacenar el resultado y después ordenarla. Esto si que es muuuy costoso.
Un saludo.