mysql - 何时使用 node-mysql 模块打开连接?

标签 mysql node.js

我找到了一个非常好的模块(node-mysql)来连接Mysql数据库。

模块很好,我只有一个关于“何时”打开与Mysql的连接的问题。

在开始使用 node 之前,我总是使用 php-mysql,对于每个请求,我打开一个连接...然后查询....然后关闭。

node也一样吗?对于每个请求,我是否必须打开一个连接然后关闭它?或者我可以使用持久连接吗?

谢谢

最佳答案

open-query-close 模式通常依赖于连接池来获得良好的性能。 Node-mysql 没有任何内置的连接池,因此如果您使用此模式,您将支付每次运行查询时建立新连接的成本(在您的情况下可能会或可能不会好)。

因为 node 是单线程的,你可以摆脱一个单一的持久连接(特别是因为 node-mysql 会在连接终止时尝试重新连接),但是如果你打算使用事务,那么这种方法可能会出现问题(因为 Node 客户端的所有用户共享相同的连接和相同的事务状态)。此外,单个连接可能会限制吞吐量,因为一次只能执行一个 sql 命令。

因此,为了交易安全和性能,最好的情况是使用某种池化。您可以自己在您的应用程序中构建一个简单的池,或者调查有哪些其他软件包可以提供该功能。但是打开-查询-关闭或持久连接方法也可能适用于您的情况。

关于mysql - 何时使用 node-mysql 模块打开连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6608123/

相关文章:

node.js - 如何从同一局域网中的远程计算机访问 Node 服务器

JavaScript:如何以既能在 Node.js 上又能在浏览器上运行的方式包含文件?

php - mysql_fetch_array/row 只取1条数据

PHP PDO mysql 准备语句和连接

mysql - InnoDB 表错误 : Doesn't exist/exist. 孤立表? mysql命令客户端中的不可见数据库

node.js - 多个 2dsphere 索引,不确定要运行 geoNear 中的哪一个

node.js - main.js 顶部或函数内部是否需要 NPM 包? - Node .js

javascript - node.js:使用等待消耗 promise

mysql - 从 MySql 数据库中检索分层数据

php - 在mysql数据库中搜索内容