当连接池耗尽时,新查询会发生什么情况?
What happens to the new queries when the connection pool is exhausted?
我正在使用 Node.js 和 MySQL 开发后端。有时,要对数据库进行大量查询 > 50,000,而我正在使用连接池。我的问题是查询由于池耗尽而被拒绝后会发生什么情况?它会排队直到连接可用然后执行吗?或者它永远不会被执行?
确实有类似的问题,但是答案没有突出我的观点,他们只是建议增加限制大小。
也许吧。
您可以设置一些选项来修改行为。参见 https://github.com/mysqljs/mysql#pool-options
请求可能会在队列中等待空闲连接,也可能不会。这是基于选项 waitForConnections
。如果将此选项设置为 false,请求 returns 立即出错而不是等待。
如果超过 queueLimit
个请求已经在等待,新请求 returns 立即出错。默认值为0,表示队列没有限制。
请求将最多等待 acquireTimeout
毫秒,如果仍然没有获得空闲连接,returns 会出错。
P.S.: 我不使用Node.js,我只是在文档中阅读了这个。
我正在使用 Node.js 和 MySQL 开发后端。有时,要对数据库进行大量查询 > 50,000,而我正在使用连接池。我的问题是查询由于池耗尽而被拒绝后会发生什么情况?它会排队直到连接可用然后执行吗?或者它永远不会被执行?
确实有类似的问题,但是答案没有突出我的观点,他们只是建议增加限制大小。
也许吧。
您可以设置一些选项来修改行为。参见 https://github.com/mysqljs/mysql#pool-options
请求可能会在队列中等待空闲连接,也可能不会。这是基于选项 waitForConnections
。如果将此选项设置为 false,请求 returns 立即出错而不是等待。
如果超过 queueLimit
个请求已经在等待,新请求 returns 立即出错。默认值为0,表示队列没有限制。
请求将最多等待 acquireTimeout
毫秒,如果仍然没有获得空闲连接,returns 会出错。
P.S.: 我不使用Node.js,我只是在文档中阅读了这个。