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

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

Mary-Kate Olsen
发布: 2024-12-15 13:37:18
原创
843 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板