首頁 > 後端開發 > php教程 > 事務如何顯著加速具有多個值的 MySQLi INSERT 操作?

事務如何顯著加速具有多個值的 MySQLi INSERT 操作?

DDD
發布: 2024-12-17 19:38:11
原創
262 人瀏覽過

How Can Transactions Significantly Speed Up MySQLi INSERT Operations with Multiple Values?

MySQLi 中具有多個值的高效且安全的INSERT 操作

將大量資料插入資料庫可能會帶來效能挑戰,尤其是當它涉及維護針對SQL 注入攻擊的安全性時。 PHP 和 MySQLi 提供了各種方法來解決此問題,同時確保資料完整性。

提供的程式碼使用簡單的方法,在循環中為陣列中的每個值準備和綁定參數。然而,由於重複過程,這種方法可能會遇到大型資料集的效能問題。

推薦的技術是利用事務。交易將多個操作分組到一個單元中,確保它們全部應用或根本不應用。透過將插入查詢封裝在事務中,如最佳化程式碼所示:

$mysqli->query("START TRANSACTION");
foreach ($array as $one) {
    $stmt->execute();
}
$mysqli->query("COMMIT");
登入後複製

我們可以獲得顯著的效能改進。事務減少了單獨執行每個查詢的開銷,從而縮短了執行時間。

此外,最佳化後的程式碼透過在循環外執行這些操作,最大限度地減少了對prepare()和bind_param()的呼叫次數。這進一步減少了處理時間。

效能測試結果

為了證明這些最佳化的有效性,我們在 Web 伺服器上進行了 10,000 次迭代的測試。結果是:

  • 沒有交易:226秒。
  • 有交易:2秒。

使用交易導致了兩個訂單速度大幅提升,展示了其在處理大型資料集時提高效能的潛力。

以上是事務如何顯著加速具有多個值的 MySQLi INSERT 操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板