我知道nodeJs架构是基于单线程的,它是事件驱动模型。事实上,直接在nodeJs App上,我们不必关心对同一变量的并发写入和读取(如果我错了,请告诉我)。但是我现在想知道在与nodeJs App交换的数据库行(MySQL)上的并发访问是什么。那么,如何在我的应用程序上实现一致性状态呢?附言:一些代码示例将会很好。谢谢
如何在以MySQL为数据库的nodeJs服务器上实现多用户的安全读写操作(例如基本增量),避免出现不一致的状态?
发布于 2019-04-03 00:47:16
数据库一致性是关于关系型数据库管理系统如何实现Atomicity, Consistency, Isolation, and Duration (ACID).的,它与node.js程序中的并发性是两码事。
如果要在数据库表的行中增加一个值,则可以对数据库使用此查询。
UPDATE statistics SET counter = counter + 1 WHERE item = 'someItemId';您需要在node.js MySQL应用程序接口中通过适当的方法调用发出查询。
即使许多不同的node.js (或Java、php或其他)程序同时在数据库上运行这种查询,结果仍然是一致的。关系型数据库管理系统隐式地将这种查询封装在一个transaction中,确保它在启动后运行到完成。这就是RDBMS一致性的全部内容。
对ACID的详细解释远远超出了堆栈溢出答案的范围。
https://stackoverflow.com/questions/55479537
复制相似问题