gpt4 book ai didi

mysql - Node.js MySQL 连接、查询顺序和事件循环

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:52 25 4
gpt4 key购买 nike

让我们看看这个例子

conn.query('SET @v = 1;', (err) => {
conn.query('SELECT @v;', (err, res) => {
// res contains @v = 1 or 2 ?
});
});

conn.query('SET @v = 2;', (err) => {
conn.query('SELECT @v;', (err, res) => {
// res contains @v = 1 or 2 ?
});
});

mysql/mysql2 Node 包是否保证MySQL查询顺序?

最佳答案

是的,mysql 和 mysql2 都保留顺序。在下面的示例中,执行顺序由数字表示

conn.query('query 1', (err) => {
conn.query('query 3', (err, res) => {
});
});

conn.query('query 2', (err) => {
conn.query('query 4', (err, res) => {
});
});

首先,“查询1”和“查询2”被放入命令队列。然后,在“查询 1”完成后,“查询 3”将添加到队列中(现在是“查询 2,查询 3”)。 “查询 2”完成后,它的回调函数被调用,结果“查询 4”被添加到队列中。

这更多的是协议(protocol)属性,而不仅仅是驱动程序的功能。 Mysql 协议(protocol)仅允许您在当前命令完全完成后发送下一个命令,并且以“半双工”的方式进行。实际并行运行两个 SQL 查询的唯一方法是打开 2 个单独的连接。

关于mysql - Node.js MySQL 连接、查询顺序和事件循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51067850/

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