SQL WHERE Klausa: Penilaian Litar Pintas?
Adakah SQL menggunakan penilaian litar pintas dalam ungkapan boolean klausa WHERE? Jawapan ringkasnya ialah: ia khusus pangkalan data.
Piawaian ANSI SQL 2003 mencadangkan penilaian kiri-ke-kanan ("Jika keutamaan tidak ditentukan oleh Format atau kurungan, penilaian berkesan terhadap ungkapan biasanya dilakukan dari kiri ke kanan."), tetapi yang penting menambah yang penting kelayakan: "bergantung kepada pelaksanaan sama ada ungkapan benar-benar dinilai dari kiri ke kanan, terutamanya apabila operan atau pengendali mungkin menyebabkan keadaan dinaikkan atau jika keputusan ungkapan itu boleh ditentukan tanpa menilai sepenuhnya semua bahagian ungkapan."
Ini bermakna walaupun banyak pangkalan data boleh dan selalunya melakukan menggunakan penilaian litar pintas untuk pengoptimuman prestasi (mengelakkan pengiraan yang tidak perlu apabila keputusan keseluruhan sudah diketahui), ia tidak dijamin secara universal .
Gelagat Khusus Pangkalan Data:
optimizer_switch
.Kesimpulan:
Walaupun litar pintas dalam SQL WHERE klausa boleh membawa kepada peningkatan prestasi, pembangun harus mengelak daripada bergantung padanya untuk mendapatkan ketepatan. Urutan penilaian sebenar akhirnya ditentukan oleh pelaksanaan sistem pangkalan data dan strategi pengoptimuman. Sentiasa tulis SQL yang jelas dan jelas dan jangan menganggap penilaian litar pintas akan berkelakuan secara konsisten seperti yang diharapkan merentas sistem pangkalan data yang berbeza.
Atas ialah kandungan terperinci Adakah Klausa WHERE SQL Menggunakan Penilaian Litar Pintas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!