inflearn logo
知識共有
inflearn logo

Spring・JPA開発者のためのMySQLロック・デッドロック実践編 — 本番環境でしか止まらない障害を、コードで再現して修正する

クエリは速いのにリクエストが待たされる原因、それはロックです。MySQL 8.0とSpring Boot・JPAの実践プロジェクトで、レコードロック・ギャップロック、デッドロックの4種類、長時間トランザクションとコネクションプールの枯渇、デプロイ中のメタデータロック、更新の消失をテストで再現し、コードを修正したうえで同じテストで確認します。

1名 が受講中です。

難易度 中級以上

受講期間 無制限

Java
Java
SQL
SQL
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot
Java
Java
SQL
SQL
MySQL
MySQL
Docker
Docker
Spring Boot
Spring Boot

受講後に得られること

  • performance_schema.data_locks・data_lock_waits・innodb_trxを使って、誰が何をロックして待機しているのかを特定し、1205・1213エラーを読み解きます。

  • インデックス・分離レベル・@Transactionalの範囲・flushのタイミングによって、ロックの範囲とロック時間がどう変わるかをテストで確認します。

  • デッドロックログの原文を読み、順序の食い違い・存在しない場合の挿入・一括処理と個別処理の違い・外部キーによるデッドロックを構造的に修正します。リトライは安全網として残します。

  • トランザクション内の外部呼び出しがコネクションプールの枯渇につながる過程と、デプロイ中にメタデータロックの待ち行列が発生する状況を再現し、防止します。

  • 先着順クーポンやカウンターのようなホットロウと、ロストアップデート・書き込みスキューを、原子的なUPDATE・ロック読み取り・代表行ロックで解決します。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 実行計画・インデックスとJPAの基礎は学んだので、次は本番運用での障害対応に取り組みたいSpringバックエンド開発者(1~5年目)

  • 1205・1213エラーや接続タイムアウトを経験したものの、原因を説明できなかった方

  • コードレビューでトランザクション・ロックのリスクを指摘したいリードエンジニア

前提知識、
必要でしょうか?

  • @Transactional、JPAエンティティ・リポジトリの基本

  • インデックス・実行計画の基礎

  • JDK 17以上、Docker(またはローカルのMySQL 8.0)

こんにちは
dorian05202988です。

キャリア認証

20年以上にわたりデータベースとIT分野でキャリアを積んできたデータ職人です。DBAおよびDB Platformチームのマネージャーとしてデータベースプラットフォームに携わり、MySQL・PostgreSQL・Oracle・MongoDB、SQLチューニング、AWS・Terraform・Pythonを専門分野としています。ゲーム・金融・ITサービス分野での経験をもとに、データベースとクラウドアーキテクチャについて解説しています。『オラ​​クル実務チューニング SQLパターン学習』と『Oracle Pro*C実務プロジェクト活用書』を出版し、AWS Summit 2018・2019と「データよ、遊ぼう」2020では、サーバーレス・データベースの選択・マルチデータベース戦略について発表しました。最近は、Bedrock LLMを利用したスロークエリの分析・チューニング提案、DBスペック算定の自動化、DBメタMCPサーバーとSlackボットを通じた照会フローを扱っています。開発者向けのデータベース自動化と、非開発者向けのAI業務活用について、各コースの対象者と目的に合わせた実習を通じて解説しています。AIの提案をそのまま適用するのではなく、結果の同一性・実行計画・観測条件を確認し、根拠が不足している場合は保留する判断基準を伝えています。会社の運用データや認証情報は講義資料に含めません。

もっと見る

カリキュラム

全体

52件 ∙ (3時間 12分)

講座資料:

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価が集まっていない講座です。
ぜひ最初のレビューをお寄せください。

dorian05202988の他の講座

知識共有者の他の講座はこちら

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥52,800

20%

¥8,405