Teknik Dipertingkatkan untuk Memasukkan Nilai Pukal dalam MySQLi
Apabila berhadapan dengan tugas memasukkan sejumlah besar nilai ke dalam pangkalan data MySQL dengan selamat, pembangun sering menggunakan kenyataan yang disediakan berulang-ulang, yang boleh memakan masa untuk set data yang besar. Artikel ini meneroka teknik yang meningkatkan prestasi tanpa menjejaskan keselamatan suntikan SQL.
Isu: Limpahan Tindanan dan Sisipan Perlahan
Pendekatan biasa ialah menggunakan pernyataan yang disediakan di dalam gelung untuk memasukkan setiap nilai secara individu. Walau bagaimanapun, kaedah ini boleh menyebabkan limpahan tindanan atau masa pelaksanaan yang perlahan apabila set data adalah besar.
$array = ["array", "with", "about", "2000", "values"]; foreach ($array as $one) { $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $stmt->execute(); $stmt->close(); }
Penyelesaian: Transaksi dan Pelaksanaan Dioptimumkan
Untuk mengoptimumkan kod di atas, kami boleh menggunakan gabungan transaksi dan pelaksanaan yang lebih baik strategi:
$array = ["array", "with", "about", "2000", "values"]; $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");
Butiran Pelaksanaan:
Penilaian Prestasi
Ujian dengan 10,000 lelaran menunjukkan peningkatan prestasi yang ketara apabila menggunakan urus niaga :
Teknik pengoptimuman ini menyediakan peningkatan kelajuan dua tertib magnitud, menjadikannya penyelesaian yang cekap dan selamat untuk sisipan nilai pukal dalam MySQL pangkalan data menggunakan MySQLi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Kemasukan Data Pukal ke dalam MySQLi untuk Kelajuan dan Keselamatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!