【发布时间】:2017-12-21 09:21:12
【问题描述】:
如果db server同时有很多请求说QPS是100,而db server的连接限制是1000,那么如果请求是慢查询最终会得到inactivity timeout,此时我应该怎么做才能防止npm package mysql 创建新连接?
因为npm package mysql 会从连接对象池中删除连接对象,并出现inactivity timeout 之类的致命错误,并为创建新连接留出空间。
【问题讨论】:
-
100 次查询/秒大约是中位数。 max_connections = 1000 相当高。连接应该在一段时间不活动(wait_timeout)后被丢弃。客户端不应长时间(数小时)挂在连接上。除了'npm',还有什么问题?
-
@Rick James,内置连接池将从池中删除可能出现致命错误(如
inactivity timeout)的坏连接对象,套接字将发送一个FIN数据包,然后池将创建一个新的。如果超时查询持续了几个小时,并且 db 服务器最终将用完其连接。
标签: mysql node.js database performance database-connection