Mil*_*šić 15 node.js node-mysql
该文档声明您可以直接使用池:
pool.query();
Run Code Online (Sandbox Code Playgroud)
或手动获取连接,然后运行查询:
pool.getConnection(function(err, connection) {
// Use the connection
connection.query( 'SELECT something FROM sometable', function(err, rows) {
// And done with the connection.
connection.release();
// Don't use the connection here, it has been returned to the pool.
});
});
Run Code Online (Sandbox Code Playgroud)
第二个选项是每次需要运行查询时都必须重复的许多代码.直接使用游泳池是否安全?完成后,是否pool.query()
将连接释放回池中?
Mil*_*šić 18
开发人员在github上回答了问题:https: //github.com/felixge/node-mysql/issues/857#issuecomment-47382419
直接使用游泳池是否安全?
是的,只要您进行单个语句查询.在上面的示例中,您无法使用它的唯一原因是因为您要在同一连接上按顺序执行多个查询.每次调用pool.query()可能是不同的连接,因此如果连接与执行SQL_CALC_FOUND_ROWS查询的连接不同,FOUND_ROWS()之类的东西将无法按预期工作.使用long方法可以为所有查询保持相同的连接.
pool.query()在完成后将连接释放回池中 吗?
是