MySQL InnoDB 插入操作的性能问题
简介
使用以下命令将数据插入 MySQL 表在某些情况下,InnoDB 引擎可能需要比预期更长的时间。本文解决了这个性能问题并提供了解决方案。
关键问题
为什么将数据插入 MySQL InnoDB 表中速度过慢?
分析
提供的测试脚本说明了插入性能之间的明显差异MyISAM 和 InnoDB 存储引擎。 MyISAM 在大约 6 秒内完成 100 万行的插入,而 InnoDB 完成同一任务需要超过 3400 秒。
说明
造成这种性能差距的主要原因MyISAM 和 InnoDB 之间的根本设计差异在于。 MyISAM 缺乏事务支持,使其能够更高效地插入数据。相比之下,InnoDB 强制事务完整性,要求在每个语句之后进行提交操作。默认情况下,InnoDB 在每次插入后都会执行日志刷新到磁盘,从而导致显着的性能开销。
解决方案
为了缓解此性能问题,利用杠杆至关重要InnoDB的事务处理能力有效。通过将插入语句包含在显式事务中,我们可以降低磁盘写入频率并显着提高插入速度。
为此,请在启动插入循环之前执行以下语句:
完成插入操作后,使用以下语句提交事务:
以上是为什么我的 InnoDB INSERT 性能比 MyISAM 慢这么多?的详细内容。更多信息请关注PHP中文网其他相关文章!