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.