😰「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターン2020/12/19に公開2020/12/222件GoMySQLトランザクションtechDiscussionshuntagami2022/07/04大変わかりやすい記事をありがとうございます! 今回の場合select id from rooms where id = ? for updateというようなクエリでroomに対するロックを事前に取得することでトランザクション分離レベルを下げなくてもデッドロックを回避できるのでその内容を記事にしてみました! https://zenn.dev/shuntagami/articles/ea44a20911b817 返信を追加tockn | Cloudbase2022/07/05おおおっ!ありがとうございます!!めちゃくちゃわかりやすく勉強になります!!! 実際僕も業務でロック用のテーブルを使用したり、Redisを使った排他ロックを実装することでデッドロック等を回避しています! 続きはshuntagamiさんの記事のDiscussionに記載します! 返信を追加
shuntagami2022/07/04大変わかりやすい記事をありがとうございます! 今回の場合select id from rooms where id = ? for updateというようなクエリでroomに対するロックを事前に取得することでトランザクション分離レベルを下げなくてもデッドロックを回避できるのでその内容を記事にしてみました! https://zenn.dev/shuntagami/articles/ea44a20911b817 返信を追加
tockn | Cloudbase2022/07/05おおおっ!ありがとうございます!!めちゃくちゃわかりやすく勉強になります!!! 実際僕も業務でロック用のテーブルを使用したり、Redisを使った排他ロックを実装することでデッドロック等を回避しています! 続きはshuntagamiさんの記事のDiscussionに記載します! 返信を追加
Discussion
大変わかりやすい記事をありがとうございます!
今回の場合
select id from rooms where id = ? for updateというようなクエリでroomに対するロックを事前に取得することでトランザクション分離レベルを下げなくてもデッドロックを回避できるのでその内容を記事にしてみました! https://zenn.dev/shuntagami/articles/ea44a20911b817おおおっ!ありがとうございます!!めちゃくちゃわかりやすく勉強になります!!!
実際僕も業務でロック用のテーブルを使用したり、Redisを使った排他ロックを実装することでデッドロック等を回避しています!
続きはshuntagamiさんの記事のDiscussionに記載します!