そのDB負荷、"仕様変更"で解決しませんか? 技術だけじゃない負荷対策アプローチ
by
むらまつ
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
2025年6月28日 むらまつ そのDB負荷、"仕様変更"で解決しませんか? 技術だけじゃない負荷対策アプローチ
Slide 2
Slide 2 text
2 自己紹介 村松 遼 むらまつ りょう ● 所属 ○ 株式会社コドモン ● 最近気になっているツール ○ Gemini CLI
Slide 3
Slide 3 text
すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、こども施設職員の業務を支援するWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。 3
Slide 4
Slide 4 text
4 3 2 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓 1 2 1 2 3
Slide 5
Slide 5 text
5 3 2 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓 1 2 1
Slide 6
Slide 6 text
6 CONFIDENTIAL - © 2022 CoDMON Inc. 6 1. コドモンで直面したDB負荷の課題 課題:保護者アプリのタイムライン機能
Slide 7
Slide 7 text
7 CONFIDENTIAL - © 2022 CoDMON Inc. 7 1. コドモンで直面したDB負荷の課題 課題:保護者アプリのタイムライン機能
Slide 8
Slide 8 text
8 この機能、実は。。。
Slide 9
Slide 9 text
9 Reader DB負荷全体の 1/2以上を占めていました😱
Slide 10
Slide 10 text
10 DB負荷が上がりつつづけている現状
Slide 11
Slide 11 text
11 チームで改善することにしました⚔
Slide 12
Slide 12 text
12 しかし、改善するのがかなり難しい
Slide 13
Slide 13 text
13 CONFIDENTIAL - © 2022 CoDMON Inc. 13 負荷改善が難しい理由について ✖ ✖ ✖ ✖ ✖ ● 新しいもの順に表示する
Slide 14
Slide 14 text
14 CONFIDENTIAL - © 2022 CoDMON Inc. 14 負荷改善が難しい理由について ✖ ✖ ✖ ✖ ✖ ● 新しいもの順に表示する ↓ ⚠ 7テーブル(15種類)のデータを並び替える
Slide 15
Slide 15 text
15 CONFIDENTIAL - © 2022 CoDMON Inc. 15 負荷改善が難しい理由について ✖ ✖ ✖ ✖ ✖ ● 新しいもの順に表示する ↓ ⚠ 7テーブル(15種類)のデータを並び替える ⚠ limitでデータを絞れない
Slide 16
Slide 16 text
16 CONFIDENTIAL - © 2022 CoDMON Inc. 16 負荷改善が難しい理由について ✖ ✖ ✖ ✖ ✖ ● 新しいもの順に表示する ↓ ⚠ 7テーブル(15種類)のデータを並び替える ⚠ limitでデータを絞れない ⚠ テーブル構造が原因で有効なINDEXが貼れない ものもある
Slide 17
Slide 17 text
17 CONFIDENTIAL - © 2022 CoDMON Inc. 17 チームで考えた技術的アプローチ ✖ ✖ ✖ ✖ ✖ ● タイムライン表示用テーブル作って
Slide 18
Slide 18 text
18 CONFIDENTIAL - © 2022 CoDMON Inc. 18 チームで考えた技術的アプローチ ✖ ✖ ✖ ✖ ✖ ● タイムライン表示用テーブル作って ● 更新のイベントを元に
Slide 19
Slide 19 text
19 CONFIDENTIAL - © 2022 CoDMON Inc. 19 チームで考えた技術的アプローチ ✖ ✖ ✖ ✖ ✖ ● タイムライン表示用テーブル作って ● 更新のイベントを元に ● Debeziumを使ってデータを更新し
Slide 20
Slide 20 text
20 CONFIDENTIAL - © 2022 CoDMON Inc. 20 チームで考えた技術的アプローチ ✖ ✖ ✖ ✖ ✖ ● タイムライン表示用テーブル作って ● 更新のイベントを元に ● Debeziumを使ってデータを更新し ● 過去のデータも移行し。。。
Slide 21
Slide 21 text
21 技術的に解決するのは難しそう。。。
Slide 22
Slide 22 text
22 デザイナー:「仕様変えてみては?」
Slide 23
Slide 23 text
23 たしかに💡 仕様を変えるなら簡単に解決できそう!
Slide 24
Slide 24 text
24 デザイナーチームと協力することに🤝
Slide 25
Slide 25 text
25 3 2 1 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓
Slide 26
Slide 26 text
26 CONFIDENTIAL - © 2022 CoDMON Inc. 26 仕様を変更するというアプローチ ● 日付の期間の絞り込みを必須にする
Slide 27
Slide 27 text
27 CONFIDENTIAL - © 2022 CoDMON Inc. 27 仕様を変更するというアプローチ ● 日付の期間の絞り込みを必須にする 👉クエリされる範囲は期間内で限定される
Slide 28
Slide 28 text
28 CONFIDENTIAL - © 2022 CoDMON Inc. 28 仕様を変更するというアプローチ ● 日付の期間の絞り込みを必須にする 👉クエリされる範囲は期間内で限定される 👉ユーザーは期間検索が行える様になった
Slide 29
Slide 29 text
29 CONFIDENTIAL - © 2022 CoDMON Inc. 29 仕様を変更するというアプローチ タイムラインの負荷対策 ● 日付の期間の絞り込みを必須にする 👉クエリされる範囲は期間内で限定される 👉ユーザーは期間検索が行える様になった Reader DBのReadIO
Slide 30
Slide 30 text
30 2 3 1 今日話すこと コドモンで直面したDB負荷の課題 仕様を変更するというアプローチ 負荷対策で得た教訓
Slide 31
Slide 31 text
31 CONFIDENTIAL - © 2022 CoDMON Inc. 31 負荷対策で得た教訓 ● 負荷対策は仕様を変更しないことが前提ではない
Slide 32
Slide 32 text
32 CONFIDENTIAL - © 2022 CoDMON Inc. 32 負荷対策で得た教訓 ● 負荷対策は仕様を変更しないことが前提ではない ● 負荷対策とUX向上の両方を考える
Slide 33
Slide 33 text
33 CONFIDENTIAL - © 2022 CoDMON Inc. 33 負荷対策で得た教訓 ● 負荷対策は仕様を変更しないことが前提ではない ● 負荷対策とUX向上の両方を考える ● 負荷対策はエンジニアだけで行うものではない
Slide 34
Slide 34 text
34 ご清聴ありがとうございました!