Perbandingan kecekapan gabungan koma dan kata kunci JOIN yang jelas dalam SQL
Pertanyaan SQL awal, apabila pembangun tidak biasa dengan kata kunci JOIN, selalunya menggunakan format berikut:
<code class="language-sql">SELECT a.someRow, b.someRow FROM tableA AS a, tableB AS b WHERE a.ID = b.ID AND b.ID = $someVar</code>
Apabila pembangun mula menggunakan INNER JOIN
, persoalan timbul: Adakah pertanyaan lama ini perlu ditulis semula?
Impak prestasi
Walaupun pertanyaan ini sah dari segi sintaksis, ia boleh menjejaskan prestasi dalam beberapa kes. Pertimbangkan pertanyaan berikut:
<code class="language-sql">SELECT * FROM people p, companies c WHERE p.companyID = c.id AND p.firstName = 'Daniel'</code>
Banyak pangkalan data akan terlebih dahulu mengira produk Cartesian bagi semua baris dalam dua jadual sebelum menapis. Untuk set data yang besar ini akan menjadi sangat tidak cekap.
Amalan Terbaik
Untuk mengelakkan isu prestasi ini, disyorkan untuk menggunakan kata kunci JOIN secara eksplisit. Pertanyaan yang ditulis semula berikut menyusun kekangan dengan lebih cekap:
<code class="language-sql">SELECT * FROM people p JOIN companies c ON p.companyID = c.id WHERE p.firstName = 'Daniel'</code>
Kaedah ini secara langsung mengarahkan pangkalan data untuk melakukan operasi gabungan dan bukannya mengira produk Cartesian yang lengkap, dengan itu meningkatkan kelajuan dan mengurangkan jejak memori.
Ringkasan
Walaupun pertanyaan lama menggunakan sintaks "comma join" akan berfungsi dengan baik, adalah disyorkan untuk mengemas kininya untuk menggunakan kata kunci JOIN. Melakukannya bukan sahaja meningkatkan kebolehbacaan tetapi juga menyelesaikan isu prestasi yang berpotensi.
Atas ialah kandungan terperinci Adakah Gabungan Gaya Koma dalam SQL Kurang Cekap Daripada Kata Kunci JOIN Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!