P粉5305192342023-08-25 15:20:13
再試一次,我不明白為什麼您的原始程式碼在稍作修改後就無法運作:
$query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); foreach ($array as $one) { $stmt->execute(); } $stmt->close();
P粉3409802432023-08-25 00:31:22
透過將插入內容放入事務中,您應該能夠大大提高速度。您也可以將準備和綁定語句移到迴圈之外。
$array = 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");
我在我的網頁伺服器上測試了此程式碼 10,000 次迭代。
沒有交易:226 秒。
交易時間:2 秒。
或速度提高兩個數量級
,至少對於該測試而言。