MySQL Community Edition デッドロック対策と発生原因を実例で学ぶ
MySQL Community Editionで、トランザクションを使用していても発生し得るデッドロックの原因と対応方法を学べます。出金履歴登録サービスのコードとテストを通じて、SELECT...FOR UPDATEによるロックの挙動や、対応時に考慮すべき問題点を確認できます。
📄
出金上限を判定して履歴を登録する処理を例に、同時リクエストでデッドロックが発生する仕組みが解説されています。取得結果がNULLの場合のネクストキーロックを原因として示し、再試行や分離レベルの変更、テーブルロックなどの対応方法と問題点が紹介されています。
- 出金履歴登録サービスによる再現手順
- 同時リクエストで起きるデッドロック
- NULL取得時のネクストキーロック
- 対応方法と分離レベル変更の問題点
記事は著者の方がZennに公開されているものです。当社は内容を転載していません。上のリンクから元記事が開きます。
MySQL Community Edition とは
Webシステムで広く利用されるオープンソースのリレーショナルデータベースです。
MySQL Community Edition を実務で使うための情報
MySQL Community Edition の他のテーマ
よくある質問
MySQL Community Edition は商用利用できますか?
MySQL Community Edition はオープンソースとして公開されています。ライセンスの条件(改変版を配布する場合の義務など)は元のリポジトリで確認してください。当社のカタログページでは、ライセンスの区分と実務上の注意点をまとめています。
MySQL Community Edition デッドロック対策 で調べています。まず何を読めばよいですか?
このページで紹介しているZennの記事「MySQLで発生し得る思わぬデッドロックと対応方法」が、実際に手を動かした人の記録です。導入の可否や費用の考え方まで含めて判断したい場合は、あわせて当社のカタログページをご覧ください。
自分で導入するのが難しい場合はどうすればよいですか?
当社がOSSの導入・日本語化・サーバー構築を代行しています(税込110,000円〜)。相談は無料で、Zoomでの打ち合わせにも対応しています。「そのOSSは御社には向かない」という結論になることもあり、その場合はそうお伝えします。
読んだうえで、自分でやるか任せるか
OSSは「入れる」より「日本語で運用に乗せる」ほうが手間です。記事のとおりに進めて詰まったら、そこから先は任せてください。