Heim > Fragen und Antworten > Hauptteil
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 秒。
或者速度提高两个数量级
,至少对于该测试而言。