PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Вътрешно присъединяване срещу правене на клауза where в

Има ли разлика между подаването на една заявка и подаването на две заявки? Е, аз определено се надявам да е така. 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) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pandas актуализира sql

  2. Как работи функцията Power() в PostgreSQL

  3. Как да задам първичен ключ за автоматично увеличение в PostgreSQL?

  4. персонализирайте пейджър в psql

  5. Хибернация:дублираната стойност на ключ нарушава уникалното ограничение