Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengoptimumkan Kemasukan Data Pukal ke dalam MySQLi untuk Kelajuan dan Keselamatan?

Bagaimanakah Saya Boleh Mengoptimumkan Kemasukan Data Pukal ke dalam MySQLi untuk Kelajuan dan Keselamatan?

Susan Sarandon
Lepaskan: 2024-12-31 13:28:11
asal
768 orang telah melayarinya

How Can I Optimize Bulk Data Insertion into MySQLi for Speed and Security?

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();
}
Salin selepas log masuk

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");
Salin selepas log masuk

Butiran Pelaksanaan:

  • Transaksi: Kami memulakan transaksi sebelum memasukkan nilai dan melaksanakannya selepas semua nilai dimasukkan. Ini memastikan bahawa jika sebarang ralat berlaku semasa pemasukan, perubahan akan ditarik balik.
  • Pelaksanaan Dioptimumkan: Kami mengalihkan pernyataan yang disediakan dan operasi pengikatan di luar gelung. Ini mengurangkan overhed penyediaan penyata setiap kali nilai dimasukkan.

Penilaian Prestasi

Ujian dengan 10,000 lelaran menunjukkan peningkatan prestasi yang ketara apabila menggunakan urus niaga :

  • Tanpa transaksi: ~226 saat
  • Dengan transaksi: ~2 saat

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan