优化 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中文网其他相关文章!