MySQLi 中具有多個值的高效且安全的INSERT 操作
將大量資料插入資料庫可能會帶來效能挑戰,尤其是當它涉及維護針對SQL 注入攻擊的安全性時。 PHP 和 MySQLi 提供了各種方法來解決此問題,同時確保資料完整性。
提供的程式碼使用簡單的方法,在循環中為陣列中的每個值準備和綁定參數。然而,由於重複過程,這種方法可能會遇到大型資料集的效能問題。
推薦的技術是利用事務。交易將多個操作分組到一個單元中,確保它們全部應用或根本不應用。透過將插入查詢封裝在事務中,如最佳化程式碼所示:
$mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $mysqli->query("COMMIT");
我們可以獲得顯著的效能改進。事務減少了單獨執行每個查詢的開銷,從而縮短了執行時間。
此外,最佳化後的程式碼透過在循環外執行這些操作,最大限度地減少了對prepare()和bind_param()的呼叫次數。這進一步減少了處理時間。
效能測試結果
為了證明這些最佳化的有效性,我們在 Web 伺服器上進行了 10,000 次迭代的測試。結果是:
使用交易導致了兩個訂單速度大幅提升,展示了其在處理大型資料集時提高效能的潛力。
以上是事務如何顯著加速具有多個值的 MySQLi INSERT 操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!