Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
コドモン開発チーム
August 09, 2026
Technology
76
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
コドモン開発チーム
August 09, 2026
More Decks by コドモン開発チーム
See All by コドモン開発チーム
AI時代のPHP開発にASTクエリツール で コードベースの地図を作る / ast-query-tool-php-codebase-map
codmoninc
0
65
コドモンに入社してAI活用により、 設計がより重要だと感じた背景
codmoninc
0
90
実装・設計だけでなく、運用・保守にもAIを広げてみた / We Took AI Beyond Coding and Into Operations and Maintenance
codmoninc
0
81
AIが無かった頃の素敵な出会いの話
codmoninc
1
440
5分で問診!Composer セキュリティ健康診断
codmoninc
0
1k
アラート疲れからの脱却 - リソースタグで仕分けるSlack通知戦略 / Breaking Free from Alert Fatigue – A Slack Notification Strategy Using Resource Tags for Routing
codmoninc
0
46
SREに優しいTerraform構成 modulesとstateの組み方 / terraform-modules-state-for-sre
codmoninc
0
410
モノリスなプロダクトの「ほどよい」リプレイス戦略 / A "Just Right" Replacement Strategy for Monolithic Products
codmoninc
0
320
Don't Just Patch — MOTTAINAI! Learn Security from Laravel CVE Diffs
codmoninc
0
270
Other Decks in Technology
See All in Technology
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
4
1.7k
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
6.2k
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
340
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
120
TypeScript入門 2026
recruitengineers
PRO
3
600
ブラウザ研修 2026
recruitengineers
PRO
6
1k
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
3
24k
サイバー捜査員研修(後半)
nomizone
1
890
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.4k
ソフトウェアサプライチェーンの構造的リスクとコンテナ環境の保護
kyohmizu
3
250
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
210
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
860
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Done Done
chrislema
186
16k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
640
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
240
Leo the Paperboy
mayatellez
8
2.1k
Building Adaptive Systems
keathley
44
3.2k
Testing 201, or: Great Expectations
jmmastey
46
8.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
960
Transcript
PHPカンファレンス2026 リジェクトコン&アフターイベント コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話 株式会社コドモン プロダクト開発部 村松 遼 2026年08月06日
自己紹介 村松 遼 むらまつ りょう 経歴 2023年に新卒でコドモンにジョインしました。 請求関連機能チームを経て、現在はDBの負荷対策に取り組んでいます。 最近はりゅうじのバズレシピをもとに自炊にチャレンジしてます! 2023.04
コドモンに新卒エンジニアとして入社 2024.06 テーブル解体チームにJOIN 2
こんなプロダクトを開発しています すべての先生に 子どもと向き合う 時間と心のゆとりを メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。 3
4
いきなりですが 5
スロークエリありますか...? 6
弊社はあります💪 7
たまに急に発生するスロークエリも... 8
最悪の場合、DB負荷でサービス停止に😱 9
そんな未来は避けたい 10
そんなときの救世主👼 11
max_execution_time (クエリタイムアウト) 12
クエリタイムアウトを設定して DB負荷を未然に防ぐお話 (MySQL) 13
今日話すこと 1 クエリタイムアウトについて 2 設定する際の落とし穴 3 コドモンでどうしてる? 14
今日話すこと 1 クエリタイムアウトについて 2 設定する際の落とし穴 3 コドモンでどうしてる? 15
1. クエリタイムアウトについて • max_execution_timeって?? CONFIDENTIAL - © 2022 CoDMON Inc.
16 16
1. クエリタイムアウトについて • max_execution_timeって?? →設定値を越える長時間のクエリは3024エラーで中断される CONFIDENTIAL - © 2022 CoDMON
Inc. 17 17
1. クエリタイムアウトについて • max_execution_timeって?? →設定値を越える長時間のクエリは3024エラーで中断される →読み取り専用の SELECT 文にだけ適用される CONFIDENTIAL -
© 2022 CoDMON Inc. 18 18
1. クエリタイムアウトについて • max_execution_timeって?? →設定値を越える長時間のクエリは3024エラーで中断される →読み取り専用の SELECT 文にだけ適用される →MySQL 5.7
から利用できる設定項目 CONFIDENTIAL - © 2022 CoDMON Inc. 19 19
1. クエリタイムアウトについて • max_execution_timeの設定方法 CONFIDENTIAL - © 2022 CoDMON Inc.
20 20
1. クエリタイムアウトについて • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
CONFIDENTIAL - © 2022 CoDMON Inc. 21 21
1. クエリタイムアウトについて • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
→ SELECT /*+ MAX_EXECUTION_TIME(5000) */ * FROM table_name ~~; CONFIDENTIAL - © 2022 CoDMON Inc. 22 22
1. クエリタイムアウトについて これで長時間実行される クエリは撲滅!! CONFIDENTIAL - © 2022 CoDMON Inc.
23 23
1. クエリタイムアウトについて しかし実は落とし穴が😱 CONFIDENTIAL - © 2022 CoDMON Inc. 24
24
今日話すこと 1 クエリタイムアウトについて 2 設定する際の落とし穴 3 コドモンでどうしてる? 25
2. 設定する際の落とし穴 • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
→ SELECT /*+ MAX_EXECUTION_TIME(5000) */ * FROM table_name ~~; CONFIDENTIAL - © 2022 CoDMON Inc. 26 26
2. 設定する際の落とし穴 • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
→ SELECT /*+ MAX_EXECUTION_TIME(5000) */ * FROM table_name ~~; CONFIDENTIAL - © 2022 CoDMON Inc. 27 27
2. 設定する際の落とし穴 • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
→ SELECT /*+ MAX_EXECUTION_TIME(5000) */ * FROM table_name ~~; かつ、RDS Proxyを使っている場合 CONFIDENTIAL - © 2022 CoDMON Inc. 28 28
2. 設定する際の落とし穴 RDS Proxyでコネクションの ピン留めが発生します😱 CONFIDENTIAL - © 2022 CoDMON
Inc. 29 29
2. 設定する際の落とし穴 ピン留めされるとどうなる? CONFIDENTIAL - © 2022 CoDMON Inc. 30
30
2. 設定する際の落とし穴 • 設定する前 CONFIDENTIAL - © 2022 CoDMON Inc.
31 31
2. 設定する際の落とし穴 • 設定する前 CONFIDENTIAL - © 2022 CoDMON Inc.
32 32
2. 設定する際の落とし穴 • 設定する前 CONFIDENTIAL - © 2022 CoDMON Inc.
33 33
2. 設定する際の落とし穴 • 設定する前 3接続を1コネクションで捌く 🙌 CONFIDENTIAL - © 2022
CoDMON Inc. 34 34
2. 設定する際の落とし穴 しかし、SET SESSIONで タイムアウトを設定すると😱 CONFIDENTIAL - © 2022 CoDMON
Inc. 35 35
2. 設定する際の落とし穴 • 設定した後 CONFIDENTIAL - © 2022 CoDMON Inc.
この接続は タイムアウトが設 定されている ...! 36 36
2. 設定する際の落とし穴 • 設定した後 CONFIDENTIAL - © 2022 CoDMON Inc.
コネクション 使い回せない!! 37 37
2. 設定する際の落とし穴 • 設定した後 3接続で3コネクション使われる 😭 CONFIDENTIAL - © 2022
CoDMON Inc. 38 38
2. 設定する際の落とし穴 最悪の場合、コネクションが 足りなくなる危険性⚠ CONFIDENTIAL - © 2022 CoDMON Inc.
39 39
今日話すこと 1 クエリタイムアウトについて 2 設定する際の落とし穴 3 コドモンでどうしてる? 40
3. コドモンでどうしてる?? • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
→ SELECT /*+ MAX_EXECUTION_TIME(5000) */ * FROM table_name ~~; CONFIDENTIAL - © 2022 CoDMON Inc. 41 41
3. コドモンでどうしてる?? • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
→ SELECT /*+ MAX_EXECUTION_TIME(5000) */ * FROM table_name ~~; CONFIDENTIAL - © 2022 CoDMON Inc. 42 42
3. コドモンでどうしてる?? • max_execution_timeの設定方法 → SET SESSION max_execution_time = 5000;
→ SELECT /*+ MAX_EXECUTION_TIME(5000) */ * FROM table_name ~~; RDS Proxyでピン留めされない 🙌 CONFIDENTIAL - © 2022 CoDMON Inc. 43 43
3. コドモンでどうしてる?? • Laravel12 では👇のように書けます 参考: https://laravel-news.com/laravel-12-51-0 CONFIDENTIAL - ©
2022 CoDMON Inc. 44 44
3. コドモンでどうしてる?? • グローバルスコープを介してデフォルトとしても適用可 参考: https://laravel-news.com/laravel-12-51-0 CONFIDENTIAL - © 2022
CoDMON Inc. 45 45
3. コドモンでどうしてる?? Laravel10→12にVerUP中💪 CONFIDENTIAL - © 2022 CoDMON Inc. 46
46
さいごに CONFIDENTIAL - © 2022 CoDMON Inc. 47 47
教訓 SET SESSION は気をつけよう🚨 (RDS Proxyでピン留めされるかも) 参考: https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/rds-proxy-pinning.html#rds-proxy-pinning.mysql-tracked-vars CONFIDENTIAL -
© 2022 CoDMON Inc. 48 48
ご清聴ありがとうございました! 49
None