gpt4 book ai didi

mysql - 批量过程调用 Node MySQL

转载 作者:行者123 更新时间:2023-11-29 06:11:44 25 4
gpt4 key购买 nike

这类似于 insert multiple rows into mysql through node.js而是关于程序。

我想批量调用一个过程(超过 10k 次)。

在单独的调用中以非常慢的速度执行所有这些操作(在过程插入内容时,每秒大约插入 20 次)。

如何使用单个数据库调用高效地多次调用过程?

我可以构建一串 CALL procedure(args...); 并调用它,但是有更好、更快速、更有效的方法吗?

最佳答案

您可以通过在单个查询中执行多个语句来实现。

首先,您应该使用 mysql 创建连接启用了 multipleStatements 选项的模块:

var mysql      = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db',
multipleStatements: true
});

然后您需要将每个过程调用连接成一个字符串。不要忘记分号 ; .

var procCalls = "CALL procedure(arg1a, arg1b);" + 
"CALL procedure(arg2a, arg2b);" +
"CALL procedure(arg3a, arg3b);" +
"CALL procedure(arg4a, arg4b);" +
"CALL procedure(arg5a, arg5b);" +
"CALL procedure(arg6a, arg6b);" +
"CALL procedure(arg7a, arg7b);";
// You might want to do it in a loop

最后,只需使用启用多语句的连接执行您的串联字符串查询:

connection.query(procCalls , function (error, results, fields) {
if (error) throw error;
// Success!
});

关于mysql - 批量过程调用 Node MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37885979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com