Er der forskel på at udstede en forespørgsel og at udstede to forespørgsler? Nå, det håber jeg bestemt. SQL-motoren udfører arbejde, og den udfører dobbelt så meget arbejde (fra et bestemt perspektiv) for to forespørgsler.
Generelt vil parsing af en enkelt forespørgsel være hurtigere end at parse én forespørgsel, returnere et mellemresultatsæt og derefter føre det tilbage til en anden forespørgsel. Der er overhead i forespørgselskompilering og ved at sende data frem og tilbage.
For denne forespørgsel:
select *
from users u inner join
location l
on u.location = l.id
where u.location = 10;
Du vil have et indeks på users(location)
og location(id)
.
Jeg vil gerne påpege noget andet. Forespørgslerne er ikke tilsvarende. Den rigtige sammenligningsforespørgsel er:
select l.*
from location l
where l.id = 10;
Du bruger den samme kolonne til where
og on
. Derfor ville dette være den mest effektive version, og du vil have et indeks på location(id)
.