teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足

2023/04/11 03:48

投稿

yambejp
yambejp

スコア117967

answer CHANGED
@@ -22,4 +22,10 @@
22
22
  commit;
23
23
  ```
24
24
  上記、先行分は5秒後に実行されてaの値は30万になりますが
25
- 後行分はaのzandakaがマイナスになるためrollbackされてbの引き出しもなかったことになります
25
+ 後行分はaのzandakaがマイナスになるためrollbackされてbの引き出しもなかったことになります
26
+
27
+
28
+ > 排他ロックをかけることで複数のリクエストに参照させないことで防ぐことができると思うのですが、ロックすることで待機時間が増えてしまう
29
+
30
+ InnoDBはレコードロックのためaユーザーだけの処理をするかぎり他のbやcの処理に影響はありませんのでご心配には及ばないと思います
31
+ 仮に上記後行処理がbだけ引き出す処理であれば、aの処理がおわる前にbの処理はコミットされます