¿Hay alguna diferencia entre emitir una consulta y emitir dos consultas? Bueno, ciertamente espero que sí. El motor SQL está funcionando, y hace el doble de trabajo (desde cierta perspectiva) para dos consultas.
En general, analizar una sola consulta será más rápido que analizar una consulta, devolver un conjunto de resultados intermedio y luego retroalimentarlo a otra consulta. Hay sobrecarga en la compilación de consultas y en el paso de datos de un lado a otro.
Para esta consulta:
select *
from users u inner join
location l
on u.location = l.id
where u.location = 10;
Quiere un índice en users(location)
y location(id)
.
Quiero señalar algo más. Las consultas no son equivalentes. La consulta de comparación real es:
select l.*
from location l
where l.id = 10;
Está utilizando la misma columna para el where
y el on
. Por lo tanto, esta sería la versión más eficiente y desea un índice en location(id)
.