Има ли разлика между подаването на една заявка и подаването на две заявки? Е, аз определено се надявам да е така. SQL машината върши работа и върши двойно повече работа (от определена гледна точка) за две заявки.
Като цяло анализирането на една заявка ще бъде по-бързо от анализирането на една заявка, връщането на междинен набор от резултати и след това връщането му обратно към друга заявка. Има допълнителни разходи при компилирането на заявка и при предаването на данни напред и назад.
За тази заявка:
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)
.