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
そのDB負荷、"仕様変更"で解決しませんか? 技術だけじゃない負荷対策アプローチ
Search
むらまつ
July 02, 2025
0
280
そのDB負荷、"仕様変更"で解決しませんか? 技術だけじゃない負荷対策アプローチ
PHP カンファレンス 2025
https://phpcon.php.gr.jp/2025/
むらまつ
July 02, 2025
Tweet
Share
Featured
See All Featured
Designing Experiences People Love
moore
142
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Language of Interfaces
destraynor
160
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Making Projects Easy
brettharned
117
6.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Why Our Code Smells
bkeepers
PRO
338
57k
Done Done
chrislema
185
16k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Transcript
2025年6月28日 むらまつ そのDB負荷、"仕様変更"で解決しませんか? 技術だけじゃない負荷対策アプローチ
2 自己紹介 村松 遼 むらまつ りょう • 所属 ◦ 株式会社コドモン
• 最近気になっているツール ◦ Gemini CLI
すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、こども施設職員の業務を支援するWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。 3
4 3 2 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓 1 2 1
2 3
5 3 2 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓 1 2 1
6 CONFIDENTIAL - © 2022 CoDMON Inc. 6 1. コドモンで直面したDB負荷の課題
課題:保護者アプリのタイムライン機能
7 CONFIDENTIAL - © 2022 CoDMON Inc. 7 1. コドモンで直面したDB負荷の課題
課題:保護者アプリのタイムライン機能
8 この機能、実は。。。
9 Reader DB負荷全体の 1/2以上を占めていました😱
10 DB負荷が上がりつつづけている現状
11 チームで改善することにしました⚔
12 しかし、改善するのがかなり難しい
13 CONFIDENTIAL - © 2022 CoDMON Inc. 13 負荷改善が難しい理由について ✖
✖ ✖ ✖ ✖ • 新しいもの順に表示する
14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 負荷改善が難しい理由について ✖
✖ ✖ ✖ ✖ • 新しいもの順に表示する ↓ ⚠ 7テーブル(15種類)のデータを並び替える
15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 負荷改善が難しい理由について ✖
✖ ✖ ✖ ✖ • 新しいもの順に表示する ↓ ⚠ 7テーブル(15種類)のデータを並び替える ⚠ limitでデータを絞れない
16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 負荷改善が難しい理由について ✖
✖ ✖ ✖ ✖ • 新しいもの順に表示する ↓ ⚠ 7テーブル(15種類)のデータを並び替える ⚠ limitでデータを絞れない ⚠ テーブル構造が原因で有効なINDEXが貼れない ものもある
17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 チームで考えた技術的アプローチ ✖
✖ ✖ ✖ ✖ • タイムライン表示用テーブル作って
18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 チームで考えた技術的アプローチ ✖
✖ ✖ ✖ ✖ • タイムライン表示用テーブル作って • 更新のイベントを元に
19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 チームで考えた技術的アプローチ ✖
✖ ✖ ✖ ✖ • タイムライン表示用テーブル作って • 更新のイベントを元に • Debeziumを使ってデータを更新し
20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 チームで考えた技術的アプローチ ✖
✖ ✖ ✖ ✖ • タイムライン表示用テーブル作って • 更新のイベントを元に • Debeziumを使ってデータを更新し • 過去のデータも移行し。。。
21 技術的に解決するのは難しそう。。。
22 デザイナー:「仕様変えてみては?」
23 たしかに💡 仕様を変えるなら簡単に解決できそう!
24 デザイナーチームと協力することに🤝
25 3 2 1 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓
26 CONFIDENTIAL - © 2022 CoDMON Inc. 26 仕様を変更するというアプローチ •
日付の期間の絞り込みを必須にする
27 CONFIDENTIAL - © 2022 CoDMON Inc. 27 仕様を変更するというアプローチ •
日付の期間の絞り込みを必須にする 👉クエリされる範囲は期間内で限定される
28 CONFIDENTIAL - © 2022 CoDMON Inc. 28 仕様を変更するというアプローチ •
日付の期間の絞り込みを必須にする 👉クエリされる範囲は期間内で限定される 👉ユーザーは期間検索が行える様になった
29 CONFIDENTIAL - © 2022 CoDMON Inc. 29 仕様を変更するというアプローチ タイムラインの負荷対策
• 日付の期間の絞り込みを必須にする 👉クエリされる範囲は期間内で限定される 👉ユーザーは期間検索が行える様になった Reader DBのReadIO
30 2 3 1 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓
31 CONFIDENTIAL - © 2022 CoDMON Inc. 31 負荷対策で得た教訓 •
負荷対策は仕様を変更しないことが前提ではない
32 CONFIDENTIAL - © 2022 CoDMON Inc. 32 負荷対策で得た教訓 •
負荷対策は仕様を変更しないことが前提ではない • 負荷対策とUX向上の両方を考える
33 CONFIDENTIAL - © 2022 CoDMON Inc. 33 負荷対策で得た教訓 •
負荷対策は仕様を変更しないことが前提ではない • 負荷対策とUX向上の両方を考える • 負荷対策はエンジニアだけで行うものではない
34 ご清聴ありがとうございました!