Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
コドモン開発チーム
PRO
August 09, 2026
Technology
450
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コネクションをピン留めさせずに SELECTクエリのタイムアウトを設定した話
コドモン開発チーム
PRO
August 09, 2026
More Decks by コドモン開発チーム
See All by コドモン開発チーム
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
370
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
590
「正解の仕様」を求めて、決断する
codmoninc
PRO
0
93
AI時代のPHP開発にASTクエリツール で コードベースの地図を作る / ast-query-tool-php-codebase-map
codmoninc
PRO
0
450
コドモンに入社してAI活用により、 設計がより重要だと感じた背景
codmoninc
PRO
0
150
実装・設計だけでなく、運用・保守にもAIを広げてみた / We Took AI Beyond Coding and Into Operations and Maintenance
codmoninc
PRO
0
120
AIが無かった頃の素敵な出会いの話
codmoninc
PRO
1
590
5分で問診!Composer セキュリティ健康診断
codmoninc
PRO
0
1.4k
アラート疲れからの脱却 - リソースタグで仕分けるSlack通知戦略 / Breaking Free from Alert Fatigue – A Slack Notification Strategy Using Resource Tags for Routing
codmoninc
PRO
0
56
Other Decks in Technology
See All in Technology
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
420
自主式軟體工廠
philipz
0
220
使いこなすために知っておきたい Azure SRE Agent アンチパターン
torumakabe
2
330
サーバーフルコンピューティング?AWS Lambda
iwatatomoya
1
240
ミイダス株式会社 テックチームのご紹介 / MIIDAS Tech Team
miidas
0
150
[2026 Oracle Technical Deep Dive] Apache Iceberg × Oracle AI Database -Oracle Autonomous AI Lakehouseが実現するAI時代のデータ基盤- (2026年9月17日開催)
oracle4engineer
PRO
0
110
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
200
[2026 Oracle Technical Deep Dive] AI時代のアプリケーションを支えるCloud NativeとJava EEモダナイゼーション (2026年9月17日開催)
oracle4engineer
PRO
0
120
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
280
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
210
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
130
Featured
See All Featured
Done Done
chrislema
187
17k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.2k
How to Talk to Developers About Accessibility
jct
2
560
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
340
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Everyday Curiosity
cassininazir
0
340
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
480
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
580
A Soul's Torment
seathinner
8
3.7k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Being A Developer After 40
akosma
91
590k
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