【发布时间】:2013-10-01 08:58:32
【问题描述】:
使用node-mysql 模块,有两个连接选项 - 单个连接和一个连接池。建立与 MySQL 数据库的连接、对所有请求使用单个全局连接或创建连接池并为每个请求从池中获取一个连接的最佳方法是什么?还是有更好的方法来做到这一点?对所有请求仅使用一个共享连接会遇到问题吗?
【问题讨论】:
标签: mysql node.js node-mysql
使用node-mysql 模块,有两个连接选项 - 单个连接和一个连接池。建立与 MySQL 数据库的连接、对所有请求使用单个全局连接或创建连接池并为每个请求从池中获取一个连接的最佳方法是什么?还是有更好的方法来做到这一点?对所有请求仅使用一个共享连接会遇到问题吗?
【问题讨论】:
标签: mysql node.js node-mysql
为整个应用维护单个连接可能有点棘手。
通常,您希望打开到您的 mysql 实例的连接,然后等待它建立。
从这里你可以开始使用数据库(也许启动一个 HTTP(S) 服务器,处理请求并根据需要查询数据库。)
问题是连接被破坏时(例如由于网络错误)。 由于您为整个应用程序使用一个连接,因此您必须重新连接到 MySQL 并在建立连接时以某种方式将所有查询排队。正确实现这样的功能相对困难。
node-mysql 有一个内置的池。一个池化器,创建一些连接并将它们保存在一个池中。每当您想关闭从池中获得的连接时,池化器会将其返回到池中,而不是实际关闭它。池上的连接可以在下一次打开的调用中重复使用。
IMO 使用连接池,显然更简单,不会对性能产生太大影响。
【讨论】: