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)
.