Node.js MySQL 模块中的 mysql.createConnection 和 mysql.createPool 有啥区别?
Posted
技术标签:
【中文标题】Node.js MySQL 模块中的 mysql.createConnection 和 mysql.createPool 有啥区别?【英文标题】:What is the difference between mysql.createConnection and mysql.createPool in Node.js MySQL module?Node.js MySQL 模块中的 mysql.createConnection 和 mysql.createPool 有什么区别? 【发布时间】:2014-12-13 11:01:56 【问题描述】:我试图理解
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.createConnection 相比,使用 mysql.createPool 有什么好处?
【问题讨论】:
【参考方案1】:当你创建一个连接时,你只有一个连接,它会一直持续到你关闭它(或者它被mysql服务器关闭)。您可以通过引用传递它并重新使用它,或者您可以按需创建和关闭连接。
池是存储连接的地方。当您从池中请求连接时,您将收到当前未使用的连接或新连接。如果您已经达到连接限制,它将等到连接可用后再继续。这些池化连接不需要手动关闭,它们可以保持打开状态,并且可以轻松重复使用。
您使用哪一种完全取决于您,因为它们都实现了相同的目标,只是以两种不同的方式。
【讨论】:
以上是关于Node.js MySQL 模块中的 mysql.createConnection 和 mysql.createPool 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章