首页 >后端开发 >php教程 >事务如何优化 MySQLi 中的批量数据插入以增强性能?

事务如何优化 MySQLi 中的批量数据插入以增强性能?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-15 13:37:18845浏览

How Can Transactions Optimize Bulk Data Insertion in MySQLi for Enhanced Performance?

MySQLi 中的批量数据插入技术:性能优化

当面临向 MySQL 数据库插入大量数据的任务时,考虑性能和安全性至关重要。虽然使用准备好的语句可以防止 SQL 注入,但使用多个查询的简单实现可能效率低下。

放弃单查询方法

尝试使用一次插入所有值单个查询虽然对性能很有吸引力,但可能会导致堆栈溢出。解决方案在于在保持安全性的同时优化流程。

基于事务的方法

要显着提高性能,请将插入包含在事务中。这允许将多个插入视为单个工作单元,从而避免昂贵的数据库往返。

代码优化

以下代码片段说明了优化方法:

$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 秒

这意味着显着的两个数量级速度提升,证明了基于事务的方法的有效性。

以上是事务如何优化 MySQLi 中的批量数据插入以增强性能?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn