【发布时间】:2015-07-31 23:42:39
【问题描述】:
我一直在尝试编写一些在节点 js 上运行的数据库查询,我想到了这个。我能闻到我在误解某事,但无法弄清楚它是什么。
如果节点是单线程的,那么这意味着所有的函数调用一个接一个地运行。如果有多个客户端访问同一个节点服务器,仍然会出现请求首先排队的竞争,但是只要每个请求都被一个一个地处理,这不是让所有数据库操作都在一个单个请求 原子的?
例如,假设我想 1)计算与表中某个值匹配的列数,2)如果数字超过 10,则插入一个新行。(可能可以在一个 SQL 中执行此操作查询,但假设我分别运行它们。这是一个愚蠢的例子,但我希望你明白这一点。)我会使用事务来确保匹配列的数量不会意外改变。现在,我正在考虑编写一个在没有事务的情况下运行两个查询的函数。那保证在节点上正常工作吗?
【问题讨论】:
标签: javascript database node.js transactions