PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Inner join versus melakukan a where dalam klausa

Apakah ada perbedaan antara mengeluarkan satu kueri dan mengeluarkan dua kueri? Yah, saya tentu berharap begitu. Mesin SQL bekerja, dan bekerja dua kali lebih banyak (dari perspektif tertentu) untuk dua kueri.

Secara umum, mem-parsing satu kueri akan lebih cepat daripada mengurai satu kueri, mengembalikan kumpulan hasil antara, dan kemudian memasukkannya kembali ke kueri lain. Ada overhead dalam kompilasi kueri dan dalam meneruskan data bolak-balik.

Untuk kueri ini:

select * 
from users u inner join
     location l
     on u.location = l.id 
where u.location = 10; 

Anda ingin indeks di users(location) dan location(id) .

Saya ingin menunjukkan hal lain. Kueri tidak setara. Kueri perbandingan sebenarnya adalah:

select l.*
from location l
where l.id = 10;

Anda menggunakan kolom yang sama untuk where dan on . Oleh karena itu, ini akan menjadi versi yang paling efisien dan Anda menginginkan indeks pada 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. Kesalahan saat menggunakan R untuk mendapatkan kredensial dari Windows Cred Vault

  2. Bagaimana Anda memilih rentang tanggal di postgres?

  3. gem install pg --with-pg-config berfungsi, bundel gagal

  4. Bagaimana menjalankan perintah PostgreSQL RAISE secara dinamis

  5. Tidak dapat memulai Postgres