插入多行,简单循环还是MySQL存储过程?

时间:2015-08-20 01:47:45

标签: mysql node-mysql

我有一个用户可以按一个生成数据列表的按钮,该列表中的每个元素都需要在数据库表中插入相应的数据行。

当他们按下所述按钮时,我将插入大约4-8行数据,大约有5个字段,所以根本不是一个大查询。因此,在性能方面,最好只创建一个运行4个单独INSERT查询的for循环,或者我可以使用stored procedure做些什么?我不确定是否值得为这么小的东西实际创建存储过程的麻烦。

我无法真正使用一个INSERT查询一次插入多行,因为这需要大量额外的代码才能在我的node.js服务器上构建查询字符串。

1 个答案:

答案 0 :(得分:1)

如果您插入的行少于10行,我发现多次运行insert没有问题。您会产生大量开销,启动并提交事务并将数据传递到数据库中。但是,数据库每秒可以处理数百个插入,因此对于小用户群来说,这可能就足够了。

但是,我不明白为什么insert . . . values会很难:

insert into t(a, b, c)
    values ('a1', 'b1', 'c1'),
           ('a2', 'b2', 'c2'),
           . . .;

这似乎并不比首先循环数据困难得多。