Rumah >pangkalan data >tutorial mysql >JOIN lwn. WHERE Syarat Klausa dalam SQL: Prestasi dan Amalan Terbaik?
SQL JOIN dan WHERE Klausa: Prestasi dan Amalan Terbaik
Apabila menulis pertanyaan SQL, soalan biasa ialah peletakan syarat cantum: patutkah ia dimasukkan dalam klausa JOIN atau klausa WHERE?
Dari sudut prestasi, kedua-dua kaedah ini biasanya boleh ditukar ganti. Pengoptimum boleh menyusun semula predikat untuk mengoptimumkan pelaksanaan pertanyaan. Walau bagaimanapun, terdapat beberapa nuansa yang perlu dipertimbangkan.
Syarat klausa JOIN:
WHERE keadaan klausa:
Cadangan:
Pilihan tempat untuk meletakkan syarat bergantung pada pertanyaan khusus dan ciri data. Atas sebab prestasi, sebaiknya cuba kedua-dua kaedah dan bandingkan hasilnya. Untuk kebolehselenggaraan dan kebolehbacaan, syarat hendaklah diletakkan dalam klausa WHERE apabila boleh.
Contoh:
Pertanyaan berikut adalah setara tetapi menunjukkan pendekatan yang berbeza:
Syarat klausa JOIN:
<code class="language-sql">SELECT * FROM dbo.Customers AS CUS INNER JOIN dbo.Orders AS ORD ON CUS.CustomerID = ORD.CustomerID AND CUS.FirstName = 'John'</code>
WHERE keadaan klausa:
<code class="language-sql">SELECT * FROM dbo.Customers AS CUS INNER JOIN dbo.Orders AS ORD ON CUS.CustomerID = ORD.CustomerID WHERE CUS.FirstName = 'John'</code>
Dalam contoh ini, kedua-dua pendekatan berkemungkinan menghasilkan prestasi yang serupa, tetapi keadaan klausa WHERE mungkin lebih baik kerana kebolehbacaannya yang lebih baik.
Atas ialah kandungan terperinci JOIN lwn. WHERE Syarat Klausa dalam SQL: Prestasi dan Amalan Terbaik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!