Pertanyaan SQL selalunya melibatkan penyertaan berbilang jadual. Ini boleh dicapai menggunakan sama ada sintaks gabungan tersurat atau tersirat. Kedua-dua kaedah memautkan jadual berdasarkan lajur biasa, tetapi perbezaan gayanya kadangkala membawa kepada persoalan tentang prestasi.
Gabungan eksplisit menggunakan kata kunci INNER JOIN
untuk mentakrifkan syarat penyertaan dengan jelas. Cantuman tersirat, sebaliknya, gunakan koma (,
) untuk memisahkan nama jadual, yang berpotensi menjadikan pertanyaan kurang boleh dibaca.
Berikut ialah perbandingan:
Sertai Eksplisit:
<code class="language-sql">SELECT * FROM table_a INNER JOIN table_b ON table_a.id = table_b.id;</code>
Sertai Tersirat:
<code class="language-sql">SELECT table_a.*, table_b.* FROM table_a, table_b WHERE table_a.id = table_b.id;</code>
Dalam SQL Server (dan banyak sistem pangkalan data moden lain), tiada perbezaan prestasi yang ketara antara gabungan INNER
eksplisit dan tersirat. Pengoptimum pangkalan data mengendalikan kedua-duanya dengan cara yang sama, menghasilkan pelan pelaksanaan logik yang sama.
Adalah penting untuk diingat bahawa sintaks gabungan OUTER
tersirat (menggunakan *=
atau =*
dalam klausa WHERE
dengan senarai jadual yang dipisahkan koma) sudah lapuk dan tidak digunakan lagi dalam SQL Server 2005 dan kemudian. Walau bagaimanapun, gabungan (CROSS)
tersirat menggunakan koma, seperti yang ditunjukkan dalam contoh di atas, kekal disokong.
Keputusan antara gabungan tersurat dan tersirat selalunya berpunca kepada gaya pengekodan dan kebolehbacaan. Cantuman eksplisit meningkatkan kejelasan dan kebolehselenggaraan, manakala cantuman tersirat mungkin kelihatan lebih padat. Pilihan optimum bergantung pada pilihan pembangun individu dan standard pengekodan projek.
Atas ialah kandungan terperinci Gabungan SQL Eksplisit vs. Tersirat: Apakah Perbezaan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!