首页 > 解决方案 > 当连接池耗尽时,新查询会发生什么?

问题描述

我正在使用 Node.js 和 MySQL 开发后端。有时,要对超过 50,000 个的数据库执行大量查询,而我正在使用连接池。我的问题是查询因池耗尽而被拒绝后会发生什么?它会排队直到连接可用然后执行吗?或者它永远不会被执行?

确实有类似的问题,但答案并没有突出我的观点,他们只是建议增加限制大小。

标签: mysqlnode.jsconnection-poolingpool

解决方案


也许。

您可以设置一些选项来修改行为。见https://github.com/mysqljs/mysql#pool-options

请求可能会在队列中等待空闲连接,也可能不等待。这是基于选项waitForConnections。如果将此选项设置为 false,则请求会立即返回错误,而不是等待。

如果已经有多个queueLimit请求在等待,则新请求会立即返回错误。默认值为 0,表示队列没有限制。

该请求将等待最多acquireTimeout毫秒,然后如果仍然没有获得空闲连接,则返回错误。

PS:我不使用 Node.js,我只是在文档中阅读了这个。


推荐阅读