![]() |
1
2
考虑到这两件事,我相信你想得太多了,真的不需要担心。 确实有可能出现并发或竞争情况,这样以后的访问可能会在较早的访问之前推送其更新。然而,无论如何,我们在这里谈论的最多只有几毫秒。由于这种精确度并不重要,你会没事的。 另一个问题是同时进行多个更新导致的锁定或阻塞。但再一次,看起来你想得太多了。关系数据库通常是 好的 在数据库中处理这种情况。它们将以适当的方式锁定,以确保两个更新都发生,并且以原子和高性能的方式进行,即稍后的更新获胜,为给定的行/列设置最终值。这种事情是关系数据库最初创建的主要原因之一。 有可能产生死锁,例如事务A正在等待事务B的锁,而事务B正在等待事务A的锁,并且它们永远被卡住。更长、更复杂的链/环也是可能的。但这通常涉及以不同顺序锁定多个事物的交易。这里不会发生这种情况。
我可能会做的一件事就是确保你有一个
回顾我开始写原始答案以来发布的评论,我看到毕竟有多行在发挥作用。这确实会产生(微小的!)死锁的可能性。你可以做四件事来帮忙。选择其中任何一个,只要始终如一地完成,就可以保证避免死锁。
|
![]() |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
![]() |
SoT · SQL Server中求和函数的工作方式 2 年前 |
![]() |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
![]() |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
![]() |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |