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 ご清聴ありがとうございました!