gpt4 book ai didi

sql - node.js + postgres 数据库事务管理

转载 作者:搜寻专家 更新时间:2023-10-31 22:42:39 31 4
gpt4 key购买 nike

我们有一个现有的 SQL 数据库,我正在编写一个使用直接 SQL 访问它的 node.js 服务器,使用这个 postgres 驱动程序模块:

https://github.com/brianc/node-postgres

到目前为止,我找不到与 postgres 一起使用的事务管理 Node 模块。有人知道吗?最好在现实世界中使用?

其次,在更高的层面上,我们正在评估 node.js 是否真的可以取代 Java 作为服务器潜在处理量的真实解决方案。事务管理是我们必须解决的问题之一。因此对此有所了解也是有用的。

目前,我只是在 Node 服务器请求开始时发出 sql BEGIN,并在结束时发出 ROLLBACK 或 COMMIT。但是,我(可能很明显)不熟悉围绕 SQL 事务管理的现实问题。如果有人能简要解释事务管理框架解决的问题,我会发现它很有用。

编辑:我正在使用 postgres 驱动程序的内置连接池机制,http 请求中的所有查询都是在从池中获得的同一连接上发出的。首先发出 BEGIN,然后发出特定的 http 请求,然后发出 COMMIT 或 ROLLBACK。

谢谢。

最佳答案

事务管理是一个相当大的主题。对于我想象的你正在做的事情,你会想要使用 AUTOCOMMIT 模式。这基本上意味着您将依赖 PostgreSQL 来开始/提交您的所有语句(或者换句话说,您的所有语句将在它们自己的事务中运行,彼此无关)。确定 AUTOCOMMIT 模式适合您的一个简单方法是确定您不需要使用 ROLLBACK。 AUTOCOMMIT 模式的一个巨大好处是即使是最愚蠢的连接池工具也不会搞砸。

有关事务管理的详细信息,请先查看 http://www.postgresql.org/docs/9.1/static/transaction-iso.html无论您做什么,请确保您不使用或编写让您处于“事务中的空闲”状态的幼稚框架。最后,既然你提到了“高容量”,我应该问一下你的读写平衡是多少。如果它强烈支持读取行为,那么您应该考虑编写代码以使用 memcached。最简单(但远非最有效)的方法是使用 PQC .

关于sql - node.js + postgres 数据库事务管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9319129/

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