Dalam pembangunan web, pertanyaan pangkalan data adalah salah satu operasi yang paling kerap. Untuk pangkalan data yang mengandungi sejumlah besar data, cara meningkatkan kecekapan pertanyaan adalah masalah mendesak yang perlu diselesaikan. Artikel ini bertujuan untuk memperkenalkan cara meningkatkan kecekapan apabila melakukan pertanyaan dua jadual dalam PHP.
Pertama sekali, adalah perlu untuk memahami konsep indeks pangkalan data. Indeks ialah struktur yang membantu kami mencari data dengan cepat. Ia biasanya fail berasingan atau struktur data khas dalam jadual pangkalan data. Oleh itu, indeks boleh meningkatkan kelajuan pertanyaan untuk operasi mencari dan menapis. Sebagai contoh, apabila menggunakan pernyataan SELECT untuk membuat pertanyaan, jika terdapat medan yang menggunakan indeks dalam klausa WHERE, masa pertanyaan akan dikurangkan dengan banyak.
Kedua, pertimbangkan untuk menggunakan pertanyaan lanjutan seperti INNER JOIN dan bukannya menggelungkan pertanyaan bersarang. Walaupun pertanyaan bersarang gelung kelihatan mudah, ia menggunakan banyak sumber sistem dan gabungan dalaman boleh meningkatkan prestasi pertanyaan dengan ketara. Cantuman dalaman ialah kaedah pertanyaan yang menghubungkan data daripada dua jadual yang memenuhi kriteria cantuman. Kod berikut ialah contoh penggunaan INNER JOIN:
SELECT `table1`.`column1`, `table2`.`column2` FROM `table1` INNER JOIN `table2` ON `table1`.`id` = `table2`.`id` WHERE `table1`.`name` = 'test'
Dalam contoh ini, kami bergabung table1
dan table2
bersama-sama untuk menyertai data melalui lajur id
. Menggunakan INNER JOIN sangat mengurangkan jumlah data yang perlu dilalui oleh pertanyaan, sekali gus meningkatkan kecekapan.
Selain itu, kita juga boleh menggunakan subquery SELECT untuk menyimpan keputusan dalam jadual sementara. Pendekatan ini boleh meningkatkan kelajuan pertanyaan dengan ketara dengan mengurangkan jumlah data yang perlu dilalui semasa pertanyaan. Berikut ialah contoh menggunakan subkueri SELECT:
CREATE TEMPORARY TABLE `temp_table` SELECT `column1`, `column2` FROM `table1` WHERE `column1` > 100; SELECT * FROM `table2` WHERE `column2` IN (SELECT `column2` FROM `temp_table`);
Dalam contoh ini, kami mula-mula menyimpan data dalam table1
yang memenuhi syarat tertentu dalam jadual sementara, dan kemudian gunakan IN
Ini jadual sementara dirujuk dalam operator.
Akhir sekali, memilih API operasi MySQL yang betul juga merupakan faktor penting dalam meningkatkan kecekapan pertanyaan pangkalan data PHP. API operasi MySQL biasa termasuk MySQLi dan PDO. Kedua-duanya mempunyai prestasi yang lebih tinggi daripada fungsi MySQL yang lapuk dalam PHP, dan mereka berprestasi lebih baik dalam beberapa ujian prestasi biasa.
Ringkasnya, meningkatkan kecekapan pertanyaan pangkalan data PHP adalah isu yang tidak dapat dielakkan dalam pembangunan web. Dengan menggunakan operasi yang cekap seperti indeks, cantuman dalaman dan subkueri SELECT, kami boleh meningkatkan kecekapan pertanyaan dengan ketara, dengan itu meningkatkan pengalaman pengguna dan kelajuan akses tapak Web.
Atas ialah kandungan terperinci Bagaimana untuk meningkatkan kecekapan apabila melakukan pertanyaan dua jadual dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!