Pertimbangkan senario di mana lajur category_id ialah kunci indeks, tetapi bukan kunci utama, dalam jadual buku. Katakan kita ingin mendapatkan semula rekod tertentu menggunakan dua klausa WHERE: penapisan mengikut pengarang dan mengikut category_id. Adakah susunan klausa ini akan menjejaskan prestasi?
Soalan:
SELECT * FROM books WHERE author='Bill' AND category_id=1 SELECT * FROM books WHERE category_id=1 AND author='Bill'
Jawapan:
Anehnya, tidak. Susunan klausa WHERE tidak secara langsung mempengaruhi prestasi pertanyaan SQL.
Pengoptimum pertanyaan memainkan peranan penting dalam menganalisis pertanyaan dan memilih pelan pelaksanaan yang paling cekap berdasarkan faktor seperti indeks dan statistik pangkalan data. Walaupun terdapat indeks penutup pada kedua-dua category_id dan pengarang, salah satu daripada pertanyaan di atas boleh menggunakannya, menghasilkan prestasi yang serupa.
Oleh itu, pilihan susunan klausa WHERE bukanlah masalah prestasi. Pengoptimum cukup pintar untuk menentukan strategi pelaksanaan optimum secara dinamik berdasarkan pandangan holistik pertanyaan dan struktur pangkalan data.
Atas ialah kandungan terperinci Adakah Perintah Klausa WHERE Mempengaruhi Prestasi Pertanyaan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!