欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

mysql事件循环执行,Node.js MySQL连接,查询顺序和事件循环

发布时间:2024/7/23 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mysql事件循环执行,Node.js MySQL连接,查询顺序和事件循环 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Let's see this example

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 ?

});

});

Does mysql/mysql2 node packages guarantee MySQL queries order or not?

解决方案

Yes, both mysql and mysql2 preserve the order. In following example order of execution is indicated by number

conn.query('query 1', (err) => {

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

});

});

conn.query('query 2', (err) => {

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

});

});

First, "query 1" and "query 2" are placed to command queue. Then after "query 1" is complete "query 3" is added to queue ( now it's "query 2, query 3" ). After "query 2" is complete it's callback function is called and as a result "query 4" is added to queue.

This is more of a protocol property, not just driver's feature. Mysql protocol only allows you to send next command only after current command if fully complete, and is in a way "half duplex". The only way to actually run two sql queries in parallel is to open 2 separate connections.

总结

以上是生活随笔为你收集整理的mysql事件循环执行,Node.js MySQL连接,查询顺序和事件循环的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。