SERTAI lwn. MANA: Manakah Lebih Cepat untuk Pertanyaan Pangkalan Data?
Dalam dunia pertanyaan pangkalan data, kelajuan adalah penting. Apabila anda mempunyai dua jadual yang dipautkan oleh kunci asing, seperti Document dan DocumentStats, anda mungkin tertanya-tanya sama ada menggunakan klausa JOIN atau WHERE lebih pantas untuk mendapatkan data.
Soalan:
Pertimbangkan pertanyaan berikut:
SELECT * FROM Document, DocumentStats WHERE DocumentStats.Id = Document.Id AND DocumentStats.NbViews > 500
Pertanyaan alternatif menggunakan INNER SERTAI ialah:
SELECT * FROM Document INNER JOIN DocumentStats ON Document.Id = DocumentStats.Id WHERE DocumentStats.NbViews > 500
Pertanyaan yang manakah dilaksanakan dengan lebih pantas, atau adakah ia setara?
Jawapan:
Secara teorinya, kedua-dua pertanyaan harus dilaksanakan dengan sama pantas sebagai pengoptimum pertanyaan mengoptimumkan pelan pelaksanaan. Walau bagaimanapun, dalam praktiknya, enjin pangkalan data mungkin menghasilkan pelan pelaksanaan yang lebih baik untuk salah satu pertanyaan, terutamanya untuk operasi yang lebih kompleks.
Ringkasnya, adalah lebih baik untuk menguji kedua-dua pertanyaan pada enjin pangkalan data anda untuk menentukan yang mana satu berprestasi lebih baik . Walau bagaimanapun, anda boleh mengharapkan mereka mempunyai kelajuan yang setanding untuk pertanyaan mudah.
Atas ialah kandungan terperinci JOIN lwn WHERE: Manakah yang Lebih Pantas untuk Pertanyaan Pangkalan Data dengan Hubungan Utama Asing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!