最佳化MySQLi 中的批次INSERT 操作:一種安全且有效率的方法
將大量資料插入MySQL 資料庫需要一種技術來確保安全性和性能。本文探討了一種有效地將大量行插入表中,同時降低 SQL 注入風險的方法。
所提供的程式碼在迴圈內使用多個準備好的語句,可能會引入效能瓶頸和潛在的堆疊溢位問題。更好的方法是將插入放在事務中,並將準備好的語句和參數綁定移到循環之外。
$mysqli->query("START TRANSACTION"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); foreach ($array as $one) { $stmt->execute(); } $mysqli->query("COMMIT");
交易為批次插入提供了幾個優點:
在效能測試中,將插入移至交易中會導致速度顯著提高。對於 10,000 次迭代,執行時間從沒有事務的 226 秒下降到有事務的僅 2 秒。
這種方法提供了一種安全且高效的機制,用於將大型資料集插入 MySQL 資料庫,同時降低 SQL 的潛在風險注入和效能瓶頸。
以上是如何在MySQLi中安全且有效率地進行批次INSERT操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!