在节点中同步实现mysql查询

时间:2019-06-10 08:11:31

标签: node.js mysql2

使用mysql2

是真的,如果我们将 connectionLimit 设置为1,那么mysql查询将以串行方式(而不是并行方式)执行?

例如:

const mysql = require('mysql2');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'name',
  password:'password',
  database: 'database',
  waitForConnections: true,
  connectionLimit: 1,
  queueLimit: 0
}).promise();


pool.query("SELECT 'long' as query_result FROM table where big_column like '%sometext%'").then(r=>{ console.log(r[0])}); // long query
pool.query("SELECT 'fast' as query_result").then(r=>{console.log(r[0])}); // fast query

// Result:
// [ TextRow { query_result: 'long'} ]
// [ TextRow { query_result: 'fast' } ]

1 个答案:

答案 0 :(得分:1)

是的,下一个查询将一直排队,直到上一个查询的连接释放回池中为止。

此外,如果将waitForConnections设置为false,则下一个查询将返回错误,而是移至已排队