使用getConnection()和node.js与node-mysql模块直接使用池之间的区别?

该文档指出,您可以直接使用该池:

pool.query(); 

或手动获取连接,然后运行查询:

 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. }); }); 

第二种select是每次需要运行查询时必须重复的很多代码。 直接使用游泳池是否安全? pool.query()在完成后是否将连接释放回池中?

问题在github上由开发人员友好地回答: https : //github.com/felixge/node-mysql/issues/857#issuecomment-47382419

直接使用游泳池是否安全?

是的,只要你在做单个语句查询。 你在上面的例子中不能使用的唯一原因是因为你在同一个连接上进行多个查询需要按顺序完成。 调用pool.query()可能每次都有不同的连接,因此,如果连接与执行SQL_CALC_FOUND_ROWS查询的连接不同,则像FOUND_ROWS()这样的操作将无法按预期工作。 使用long方法可以让您为所有查询保留相同的连接。

pool.query()在完成后是否将连接释放回池中