Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批量过程调用节点MySQL_Mysql_Node.js_Stored Procedures_Bulkinsert_Node Mysql - Fatal编程技术网

批量过程调用节点MySQL

批量过程调用节点MySQL,mysql,node.js,stored-procedures,bulkinsert,node-mysql,Mysql,Node.js,Stored Procedures,Bulkinsert,Node Mysql,这类似于,但与程序有关 我想批量调用一个过程(超过10k次) 以难以置信的速度在单独的调用中完成这一切(当过程插入内容时,大约每秒20次插入) 如何使用单个数据库调用多次高效地调用过程 我可以建立一个调用过程(args…)字符串并调用它,但有没有更好、更快速、更高效的方法?您可以通过在一个查询中执行多个语句来实现 首先,您应该使用启用了multipleStatements选项的模块创建连接: var mysql = require('mysql'); var connection =

这类似于,但与程序有关

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

以难以置信的速度在单独的调用中完成这一切(当过程插入内容时,大约每秒20次插入)

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


我可以建立一个
调用过程(args…)字符串并调用它,但有没有更好、更快速、更高效的方法?

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

首先,您应该使用启用了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! 
});

我很可能能帮上忙。您需要通过
show create table xyz
为每个存储过程显示受模式影响的表的详细信息。我可以用你的方式和快速方式进行比较。但在我开始之前,你需要改进这个问题。