在节点中同步实现 mysql 个查询

Synch implementation mysql queries in node

使用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' } ]

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

此外,如果您将 waitForConnections 设置为 false,下一个查询将 return 错误而不是移动到排队