Node.js MySQL模块中mysql.createConnection和mysql.createPool有什么区别?

时间:2014-10-17 19:33:12

标签: mysql node.js

我想了解

之间的区别

mysql.createConnection

var mysql = require('mysql');

var connection = mysql.createConnection({
  host     : 'example.org',
  user     : 'bob',
  password : 'secret'
});

mysql.createPool

var mysql = require('mysql');

var pool  = mysql.createPool({
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret' 
});

在Node.js的mysql模块中

我已经熟悉 mysql.createConection 。这似乎是与MySQL建立连接的默认方式。

mysql.createPool 究竟做了什么?

我何时开始使用 mysql.createPool?

使用 mysql.createPool 而不是 mysql.createConnection 有什么好处?

1 个答案:

答案 0 :(得分:12)

创建连接时,只有一个连接,它会一直持续到关闭它(或者它被mysql服务器关闭)。您可以通过引用传递它并重新使用它,也可以按需创建和关闭连接。

池是存储连接的地方。当您从池请求连接时,您将收到当前未使用的连接或新连接。如果您已经处于连接限制,它将等待连接可用,然后才能继续。这些池化连接不需要手动关闭,它们可以保持打开状态并且易于重复使用。

你使用的完全取决于你,因为他们都以两种不同的方式实现了同样的目标。