为了提高数据库的IO速度,会使用连接池做处理,但是在高并发的情况下,一条连接完成任务后不释放掉, 会导致链接池满负载 ,后面的请求将无法处理,程序就会出现阻塞。
因此,当一条连接完成它的任务后,我们必须将它释放掉。(基本代码如下:)
var mysql = require('mysql');
var pool = mysql.createPool({
host:'127.0.0.1',
port:3306,
protocol:'mysql',
user:'root',
password:'123456',
database:'test_db',
connectionLimit:100 //最大连接数
})
pool.getConnection(function(err,conn){
if(err){
//do something
}
conn.query(sql,args,function(err,data){
if(err){
//do something
}else{
//return data or anything you want do!
}
conn.release(); //释放连接
})
})
但是,程序还是会出现阻塞,于是又是各种查阅资源文档。代码并没有任何错误。