mysqlでトランザクション処理を複数走らせた時、Aトランザクション(更新処理)の次にBトランザクション(更新処理)を走らせ、さらにCトランザクション(行取得)を走らせました。
期待値としては、Aが終わり、Bが終わり、Cが終わって、Bの更新処理が終えた状態をCで取得したいのですが、Aが終わると同時にCが終わり、最後にBが何度やっても最後に終わります。
A-B-Cの順番でトランザクションをおえるにはどうしたらいいのでしょうか?どこかで設定したりできますでしょうか?
ちなみに、Select 〜FOR UPDATEのwhere句で指定しているカラムにはindexが張ってあり、explain叩くと、possible_keysには設定したインデックスが表示されます。分離レベルはREPEATABLE READとSERIALIZABLE両方で同じ結果でした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。