有一种更聪明的方法。
批量插入的问题在于,默认情况下启用了自动提交功能,从而导致每个
insert语句在下一次插入可以启动之前被保存到稳定存储中。
如手册页所述:
默认情况下,MySQL在启用自动提交模式的情况下运行。这意味着,一旦执行更新(修改)表的语句,MySQL就会将更新存储在磁盘上以使其永久保存。要禁用自动提交模式,请使用以下语句:
SET autocommit=0;
通过将autocommit变量设置为0来禁用自动提交模式后,对事务安全表(例如InnoDB,BDB或NDBCLUSTER的表)的更改不会立即变为永久更改。您必须使用COMMIT将更改存储到磁盘,或者使用ROLLBACK忽略更改。
这是RDBMs系统的一个相当普遍的功能,它假定数据库的完整性至关重要。它确实使批量插入的时间约为每个插入1s,而不是1ms。生成超大插入语句的替代方法尝试实现此单次提交,但有可能使SQL解析器过载。



