⊗ppSpOtSQ 80 of 83 menu

Optimasi Penggunaan Kueri SQL di PHP

Menjalankan kueri SQL ke basis data merupakan operasi yang sangat lambat. Oleh karena itu, kita perlu berusaha meminimalkan jumlah kueri ke basis data.

Kesalahan paling umum adalah mengeksekusi banyak kueri SQL dalam loop, padahal ada kueri alternatif yang memungkinkan untuk melakukan hal yang diinginkan dengan satu perintah.

Mari kita lihat contohnya.

Misalkan kita diberikan array berisi id entri dalam basis data dan kita perlu menghapus entri dengan id tersebut.

Tanpa berpikir panjang, seseorang mungkin menulis konstruksi "hebat" seperti ini:

<?php $ids = [1, 2, 3, 4, 5]; // array untuk dihapus foreach ($ids as $id) { mysqli_query($link, "DELETE FROM users WHERE id=$id"); } ?>

Masalah dengan kode ini adalah banyaknya kueri yang dieksekusi dalam loop. Bayangkan jika ada 100 elemen dalam array - akan dieksekusi 100 kueri ke basis data!

Jebakan khusus dari tugas yang dijelaskan adalah saat mengembangkan situs, basis datanya kecil dan kueri dieksekusi sangat cepat. Namun, seiring berjalannya waktu situs di hosting, basis data akan membesar, kueri akan dieksekusi semakin lambat, dan bisa sampai pada titik di mana karena eksekusi ratusan kueri dalam loop, situs akan loading lebih dari satu menit!

Dengan usaha yang sedikit, kita bisa membuatnya sehingga hanya satu kueri yang dieksekusi, seperti ini:

<?php $ids = [1, 2, 3, 4, 5]; $str = implode(',', $ids); // dapatkan string '1,2,3,4,5' mysqli_query($link, "DELETE FROM users WHERE id IN ($str)"); ?>

Optimalkan kode di bawah ini:

<?php $arr = [1, 2, 2, 4, 5]; $res = []; for ($i = 1; $i < count($arr); $i++) { $note = mysqli_query($link, "SELECT * FROM users WHERE id=$id"); for ($data = []; $row = mysqli_fetch_assoc($note); $data[] = $row); $res[] = $data; } var_dump($res); ?>
Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak