mysql - 当连接池耗尽时,新查询会发生什么?
问题描述
我正在使用 Node.js 和 MySQL 开发后端。有时,要对超过 50,000 个的数据库执行大量查询,而我正在使用连接池。我的问题是查询因池耗尽而被拒绝后会发生什么?它会排队直到连接可用然后执行吗?或者它永远不会被执行?
确实有类似的问题,但答案并没有突出我的观点,他们只是建议增加限制大小。
解决方案
也许。
您可以设置一些选项来修改行为。见https://github.com/mysqljs/mysql#pool-options
请求可能会在队列中等待空闲连接,也可能不等待。这是基于选项waitForConnections
。如果将此选项设置为 false,则请求会立即返回错误,而不是等待。
如果已经有多个queueLimit
请求在等待,则新请求会立即返回错误。默认值为 0,表示队列没有限制。
该请求将等待最多acquireTimeout
毫秒,然后如果仍然没有获得空闲连接,则返回错误。
PS:我不使用 Node.js,我只是在文档中阅读了这个。
推荐阅读
- html - 动画 HTML 初始屏幕在移动设备上更改大小
- rest - SPA - 基于服务器端验证的操作确认
- javascript - 向数组添加的对象变得未定义
- c - C中的模量是否有反转
- django - 有没有办法在 Django 中将分页添加到 html 页面?
- javascript - 如何在div中的选定文本下添加div?
- python - Python读取具有不同行数的csv文件
- xml - 使用 Golang 解组后如何检查 XML 中的所有元素和属性?
- python - 如何检查表对象中字段的值是否等于 django 模板语言中的特定字符串?
- c# - WCF 接收和返回大部分数据集迁移到 gRPC