将数据插入db的最有效方法是什么?准备好的语句,批量加载还是多个插入语句?

时间:2012-03-22 17:42:46

标签: mysql performance

我正在尝试将大量数据插入数据库,我希望这是最有效的方式。现在,我将我的对象存储在arraylist中,当arraylist的大小变为5000时,我遍历所有元素并创建一个带有多个值的mysql插入stament然后调用executeUpdate()函数。我想知道有没有更快的方法,例如,而不是将数据存储在数组中,我可以创建一个本地CSV文件并使用LOAD DATA LOCAL INFILE一次,或者我可以使用数组列表。 你能告诉我,哪一个是最好的还是有其他方法可以做到这一点?

感谢。

1 个答案:

答案 0 :(得分:0)

  • 对于innodb:使用事务将所有/许多插入作为第一个优化。这可能会带来巨大的性能提升,而且可能已经足够了
  • LOAD DATA ...也是一个非常好的选择。这也将完成交易中的所有事情并明智地使用您的带宽。
  • 您可以在一个sql命令中插入多个值,例如:

    INSERT INTO talbe_blubb (col_a,col_b) VALUES (1,3), (2,2);
    

我不确定,但如果简单地插入表格,不要认为准备好的陈述可能会获得任何好处。