gpt4 book ai didi

mysql - 在nodejs中编写SQL查询

转载 作者:行者123 更新时间:2023-11-29 23:30:28 27 4
gpt4 key购买 nike

这个问题主要是关于在nodejs中编写查询的最佳实践。我们引用了一些教程,但未能得出结论。

我们有一个 Node js API 层,主要用于读写数据库。这是示例代码:

pool.query("update node SET changed = " + params.updationTime + " where nid = " + params.nid);
pool.query("update node_revision SET timestamp = " + params.updationTime +" where nid = " + params.nid);
pool.end();

这是编写代码的正确方法吗?还是我们应该以异步格式本身编写 SQL 查询。

最佳答案

如果您的池配置允许多个连接,则两个查询可能会并行执行。调用类型本身并不重要。此示例需要 2 秒才能完成:

 connection.query('select sleep(1)');
connection.query('select sleep(1)', function() { console.log('done!') });

还有这个:

 connection.query('select sleep(1)', function() {
connection.query('select sleep(1)', function() {
console.log('done!')
});
});

因为mysql协议(protocol)本身是“顺序的”(也就是说,只有在完全接收到前一个查询的结果后,客户端才允许发送下一个查询)。大多数异步客户端通过在内部对命令进行排队来隐藏此限制。如果有两个连接,查询实际上是并行进行的:

 connection1.query('select sleep(1)', function() { console.log('done1') });
connection2.query('select sleep(1)', function() { console.log('done2') });

“done1”和“done2”将在大约 1 秒后出现在屏幕上

pool.querypool.getConnection() + connection.query() + connection.release( ) - 参见readme

关于mysql - 在nodejs中编写SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26628111/

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