插入多行、简单循环或 MySQL 存储过程?

Inserting multiple rows, simple loop or MySQL stored procedure?

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

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

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

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

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

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

这似乎并不比首先遍历数据难多少。