1つのクエリを発行することと2つのクエリを発行することには違いがありますか?まあ、私は確かにそう願っています。 SQLエンジンは作業を行っており、2つのクエリに対して(特定の観点から)2倍の作業を行います。
一般に、単一のクエリの解析は、1つのクエリを解析して中間結果セットを返し、それを別のクエリにフィードバックするよりも高速になります。クエリのコンパイルとデータのやり取りにはオーバーヘッドがあります。
このクエリの場合:
select *
from users u inner join
location l
on u.location = l.id
where u.location = 10;
users(location)
にインデックスが必要です およびlocation(id)
。
私は何か他のことを指摘したいと思います。クエリは同等ではありません。実際の比較クエリは次のとおりです。
select l.*
from location l
where l.id = 10;
where
に同じ列を使用しています およびon
。したがって、これが最も効率的なバージョンであり、location(id)
にインデックスが必要です。 。