gpt4 book ai didi

mysql - NodeJS 数据库(mysql)连接与事务管理

转载 作者:行者123 更新时间:2023-11-29 07:38:31 25 4
gpt4 key购买 nike

在 NodeJS 应用程序中,当涉及事务时,管理连接数的最佳策略是什么(mysql 社区版)?

所以,这是我的思路-

1) 不要将控制权移交给 ORM2) 将连接视为昂贵的商品3) nodejs 的 mysql 模块似乎正在创建更多连接

假设,如果同时执行 n 个 promises(理解为单线程部分),每个都代表一个事务,我不希望它们中的每一个都创建 n 个连接——这很明显——但是当一个事务发生时会发生什么如果在 promise 之间共享连接,则需要回滚连接吗? ..我不希望一个事务在另一个事务也失败时失败..我希望“连接”对象更智能一些..这样当调用 beginTransaction 时,它提供了一个本地化的上下文......但是只是想确认是否是这种情况 - 我正在寻找一些文档。如果没有,某种 FIFO 队列来促进对这些事务进行排序似乎是前进的方向——但我们不是已经有了一个吗?你们还部署了哪些其他策略?

最佳答案

我会向您推荐 KnexJS,尤其是因为它的 transaction supprt和内置 connection pooling .我确信 Sequelize 也会以某种方式处理这个问题。

knex 的好处是您可以通过您的 promise 链传递此 事务 对象,如果任何 promise 失败(即使是非数据库错误,如业务规则! ) 交易 promise 将被拒绝,一切都会自动回滚。

我希望这对您有所帮助,并且到目前为止对我们来说“刚刚好”——我们目前不需要深入研究连接池的管理。

关于mysql - NodeJS 数据库(mysql)连接与事务管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47595925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com