![]() |
1
6
通常,这种并发问题的解决方案涉及事务和
乐观锁定
:更新计数器时,添加
如果同时更新了计数器,则更新不会更改任何行,因此您知道必须回滚并再次尝试该事务。 一个问题是它可能导致 争论 只有少数交易成功,很多交易失败。 那么最好还是坚持下去 悲观锁 ,首先锁定行,然后更新它。但只有一个基准可以告诉你。 编辑 如果使用事务而不进行乐观锁定,则可能发生以下情况。
两个事务都成功,值为50,但不一致。 |
![]() |
2
2
如果使用innodb作为存储引擎,则可以使用 transactions 在数据库中,避免需要手动锁定表。 在单个事务中,检查空间是否可用,并将播放机添加到扇区。这样可以保证检查查询的结果在提交事务之前仍然有效。 |
![]() |
hello_programmers · Mysql从其他表输出一列 2 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 2 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 2 年前 |
![]() |
Popo · Sql查询:返回数据库中不可用的where条件 2 年前 |
|
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 2 年前 |
|
Kugelfisch · 用php为数据库加密数据 2 年前 |