Lebih sederhana, lebih pendek, lebih cepat: EXISTS
.
IF EXISTS (SELECT 1 FROM people p WHERE p.person_id = my_person_id) THEN
-- do something
END IF;
Perencana kueri dapat berhenti pada baris pertama yang ditemukan - sebagai lawan dari count()
, yang akan memindai semua (cocok) baris apa pun. Membuat perbedaan dengan meja besar. Perbedaannya kecil untuk kondisi pada kolom unik:hanya satu baris yang memenuhi syarat dan ada indeks untuk mencarinya dengan cepat.
Anda cukup menggunakan SELECT
empty yang kosong daftar:
IF EXISTS (SELECT FROM people p WHERE p.person_id = my_person_id) THEN ...
SELECT
list tidak berpengaruh pada hasil EXISTS
. Hanya keberadaan setidaknya satu baris kualifikasi yang penting.