会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

トランザクションと同時実行 ― データを壊さないために

目安学習時間 18分

課題

全問正解でレクチャー完了です。

【問題1】

デッドロックを減らす対策として適切なものは?

[選択肢]

【問題2】

在庫1個の商品を同時購入から守る方法として適切でないものは?

[選択肢]
会員登録すると
学習することができます。
会員登録する(無料)
登録済みの方はこちら
ログイン

学ぶ目的

「途中で失敗」が最も怖い

口座Aから引いて口座Bに足す。片方だけ成功したら、お金が消えます。トランザクションは、複数の更新を「全部成功か、全部なかったことにするか」のどちらかに強制する仕組みです。

同時に触られると結果が変わる

在庫が1個の商品を、2人が同時に買おうとしたらどうなるか。単体では正しいSQLでも、同時実行では壊れます。分離レベルとロックは、この問題への対処法です。

トランザクションは短く保つ

長いトランザクションは他の処理を待たせ、デッドロックの温床になります。外部APIの呼び出しをトランザクションの中に入れない——実務で効く原則です。

このレクチャーで学ぶこと

  • トランザクションとACID
  • 分離レベルと同時実行の問題
  • ロックとデッドロックへの対処

質問

まだ質問は投稿されていません。

質問投稿

ログイン後に質問の投稿ができます。