如何在不等待结果的情况下并发运行MySQL多个查询?

u1ehiz5o  于 2022-12-03  发布在  Mysql
关注(0)|答案(1)|浏览(118)
function dbQuery(sql)
{
    dbcon.query(sql, function(err, result) { 
        //imagine the PING to DB server is 1 second.
        //It would take 100 seconds to complete 100 Queries, if the query is run 1 by 1.
    });
}

for (var i=0; i<100; i++) {
    dbQuery("INSERT INTO table VALUES some values");
}

我正在运行一个Socket客户端来获取连续的流数据,并且我需要真实的地向远程数据库提供数据。
假设一个PING到远程MySQL服务器是1秒,那么完成100个查询需要100秒。
我需要100个查询在1秒钟内完成,而不等待结果。这意味着只需“推到DB服务器并忘记它”,并忽略网络之间的延迟。
如果这在NodeQuery中是不可能的,那么可以使用其他编程语言来获得想要的结果?例如Java、PHP、Python,或者其他什么?
注意:我需要真实的执行每一个查询。通过INSERT批量发送不是一个选项。当我从其他地方获得数据时,我需要立即馈送数据库。

  • 非阻塞、非顺序
  • 同时、并行、并行
bvn4nwqk

bvn4nwqk1#

只是把它们放在一个诺言里而不等待结果的全部?它们是同时执行的(或多或少)

Promise.all(
  Array.from(Array(100)).map(
    () => dbQuery("INSERT INTO table VALUES some values")
  )
)

相关问题