1
yuxuan 2017-06-21 17:55:53 +08:00
记得 node 有个 pool 库可以搞连接池的
|
2
solee 2017-06-21 18:01:43 +08:00
const Sequelize = require('sequelize');
const logger = require('../logger'); var MySql = {}; var options = { dialect: 'mysql', logging: function (sql) { logger.trace(sql); }, pool: { max: 10, min: 0, idle: 10000 }, timezone: '+08:00' }; 连接池 |
3
cloud107202 2017-06-21 18:04:05 +08:00
1. node 单线程在用户态,v8 里针对 IO 是有线程池的(我的描述不一定很精准)
2. 能利用 3. 没影响 http://liyangready.github.io/2015/08/14/nodejs%E7%9C%9F%E7%9A%84%E6%98%AF%E5%8D%95%E7%BA%BF%E7%A8%8B%E5%90%97%EF%BC%9F/ |
4
acthtml OP @solee 恩,我也看到有些类库提供这些配置。但是对于第一个问题我还是不明白,在使用数据库中是否需要关闭连接来释放资源,以此来提高性能。
|
5
klesh 2017-06-21 23:02:05 +08:00 via Android
池是需要的,可以显著提高性能,使用池时一般叫 release , 不叫 close,代表将连接释放回池,实际上池在一定时间内会保持连接给别的代码使用。
node 使用异步模型,一个连接显然是不够的,假定一个请求使用一个连接,池中有十个连接,此时则可同时对十个并发进行处理,若池中只有一个连接,则只能一个个地处理。 若你只使用不 release,则在若干个请求之后程序不再响应。因之后的连接会一直在等待别的请求 release |