如何使用MySQL在nodeJs服务器上实现多个用户的安全读写操作,以避免不一致状态?

问题描述 投票:0回答:1

我知道nodeJs架构基于单个Thread,它是事件驱动的模型。实际上直接在nodeJs App上我们不必关心同一个变量的并发写入和读取(告诉我,如果我错了)。但我现在想知道与nodeJs App交换的数据库行(MySQL)上的并发访问。那么如何在我的应用程序上实现一致性状态。 PS:一些代码示例会很好。谢谢

如何使用MySQL作为数据库从nodeJs服务器上的多个用户实现安全的读写操作(例如,基本递增值)以避免不一致状态?

mysql node.js typescript thread-safety consistency
1个回答
1
投票

数据库一致性完全是关于RDBMS如何实现Atomicity, Consistency, Isolation, and Duration (ACID).这与node.js程序中的并发性不同。

如果要增加数据库表中某行的值,可以将此查询用于数据库。

 UPDATE statistics SET counter = counter + 1 WHERE item = 'someItemId';

您需要从node.js MySQL API中的相应方法调用发出查询。

即使许多不同的node.js(或Java,或php,或其他)程序在数据库上同时运行这种查询,结果仍然是一致的。 RDBMS隐式地将这种查询包装在transaction中,确保它一旦启动就运行完成。这就是RDBMS的一致性。

ACID的详细解释远远超出Stack Overflow答案的范围。

© www.soinside.com 2019 - 2024. All rights reserved.