哪个会更快....许多插入单值语句或带有许多值的插入语句?

时间:2012-04-18 14:41:22

标签: mysql jdbc

在以下情况下执行速度会更快? (需要在我的项目中决定适当的方法)

insert into table values (v1, v2, v3);

insert into table1 value (v1)
insert into table1 value (v2)
insert into table1 value (v3)
你有什么看法?

5 个答案:

答案 0 :(得分:3)

不是我的意见;但是从经验中在一个查询而不是多个查询中做某事来实现同样的事情总是更快。

答案 1 :(得分:1)

如果您正确使用批处理,它应该不会产生巨大的差异。第一个会更快。

答案 2 :(得分:0)

由于以下原因,方法1将比方法2更快

1.Less网络电话 2.Less编译/解析/解释计划/在DB中

此致 ABHI

答案 3 :(得分:0)

我认为你的语法错了。如果您尝试使用一个插入插入多行,则查询将更像这样:

INSERT INTO table1 VALUES (v1), (v2), (v3)

使用一个查询执行总是比多个查询(执行相同的操作)更快。

答案 4 :(得分:0)

(v1,v2,v3)版本会更快,但要小心如何在驱动程序中做到最好。在Java中,您将使用简单的INSERT INTO table VALUES (?) PreparedStatement,并使用addBatch()将它们组合成一个使用executeBatch()执行的更大的语句。

见3.4节: http://java.sun.com/developer/Books/JDBCTutorial/

您还需要在Connector / J驱动程序中启用rewriteBatchedStatements属性: http://dev.mysql.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html

如果适用于您的应用程序,

LOAD DATA INFILE会更快。