Node MySQL库连接池问题
本文介绍了Node MySQL库连接池问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
var mysql = require('mysql');
var pool = mysql.createPool({
host: 'localhost',
user: 'nodejs',
password: 'nodejs',
database: 'nodejs',
port: 3306
});
// 第一种方式
pool.getConnection(function (err, conn) {
conn.query("select * from user limit 1",function(err,rows){
// 数据处理
conn.release();
});
});
// 第二种方式
pool.query("select * from user limit 1",function(err,rows){
// 数据处理
});
这两种方式都有没有问题, 那两者有什么区别呢?
解决方案
上面NPM文档说,可以直接使用
pool.query()
,同时,又说了,当你使用完连接时,调用connection.release()
文档中也说了,
connection.release()
方法是在用完连接池中的某个连接之后,将其放回到连接池中去的操作所以,我猜测,说直接使用
pool.query()
,应该是自动完成了connection.release()
释放连接控制权的操作后来,我翻了一下源文件:GitHub
从190行开始,可以看到
pool.query()
调用了getConnection
方法,而且在用完后,执行了query.once('end', function() {conn.release();});
,说明前面的猜测是正确的
这篇关于Node MySQL库连接池问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文