nodejs中,mysql连接——是每次查询连接一次数据库,还是启动node时连接数据库,关闭时再断开好呢?

因为我之前用php,都是每次查询的时候才连接,查询完了就关闭的,但是用nodejs,我发现其实压根没必要每次查询都连接-关闭啊,启动node app的时候连接,然后保持连接,怎么查询都没看出有什么不好的地方啊,想问一下到底我这个做法对不对?还是说不同需求有不同做法?

两种方式解决
1、你可以配置mysql的连接池

var mysql = requiremysql;
var pool = mysql.createPool{ host: localhost, user: nodejs, password: nodejs, database: nodejs, port: 3306
}; var selectSQL = select * from t_user limit 10; pool.getConnectionfunction err, conn { if err console.log"POOL ==> " + err; conn.queryselectSQL,functionerr,rows{ if err console.logerr; console.log"SELECT ==> "; for var i in rows { console.logrows[i]; } conn.release; };
};

2、你可以使用断线重连的方式来解决

var mysql = requiremysql;
var conn;
function handleError { conn = mysql.createConnection{ host: localhost, user: nodejs, password: nodejs, database: nodejs, port: 3306 }; //连接错误,2秒重试 conn.connectfunction err { if err { console.logerror when connecting to db:, err; setTimeouthandleError , 2000; } }; conn.onerror, function err { console.logdb error, err; // 如果是连接断开,自动重新连接 if err.code === PROTOCOL_CONNECTION_LOST { handleError; } else { throw err; } };
}
handleError;

mysql是有连接池的 并发大的情况下 如果你之前的连接不关闭 连接池满了 请求无法处理 程序就会阻塞 因此是用完是需要释放的

发表评论

电子邮件地址不会被公开。 必填项已用*标注