Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mirrativを支えるバックエンド開発 ~MySQLとの向き合い方~/ Backend Development for Mirrativ - How to deal with MySQL

B248ac938d3f455da599cec43b67a1b6?s=47 mirrativ
August 20, 2021

Mirrativを支えるバックエンド開発 ~MySQLとの向き合い方~/ Backend Development for Mirrativ - How to deal with MySQL

2021年08月04日にLINEとミラティブで開催した「LLive_Streaming_Tech_Night 〜LINE×Mirrativ合同イベント〜
」(https://connpass.com/event/220018/) での発表資料です。

作成者:牧野 龍彦(株式会社ミラティブ バックエンドチーム マネージャー )

・発表内容と資料作成者の役職は、発表当時のものです。

B248ac938d3f455da599cec43b67a1b6?s=128

mirrativ

August 20, 2021
Tweet

Transcript

  1. STRICTLY CONFIDENTIAL .JSSBUJWΛࢧ͑ΔόοΫΤϯυ։ൃ d.Z42-ͱͷ޲͖߹͍ํd  ຀໺ ཾ඙ © 2021 Mirrativ,

    Inc.
  2. ࣗݾ঺հ ˙ ຀໺ ཾ඙ ⁃ !UBUTVNBDL ˙ .JSSBUJWόοΫΤϯυΤϯδχΞ ⁃ Ϛωʔδϟʔ݉Ϧʔυ

    ⁃ ೥݄ʹKPJO ⁃ લ৬͸%F/"ͰήʔϜ։ൃ
  3. .JSSBUJWͱ͸ εϚϗ̍୆ͰήʔϜ഑৴͕Ͱ͖Δ ίϛϡχέʔγϣϯαʔϏε

  4. .JSSBUJWͷٕज़ίϯϙʔωϯτ ࠓ೔͸ͪ͜Βͷ͓࿩

  5. όοΫΤϯυ͔Βݟͨ.JSSBUJW ˙ ഑৴αʔϏεͱͯ͠ͷ.JSSBUJW ⁃ ࢹௌऀ͔Β഑৴ऀ΁ͷΪϑτ ⁃ ഑৴ऀ΁ͷίϝϯτ ⁃ ͓͢͢Ί഑৴ ˙

    4/4ͱͯ͠ͷ.JSSBUJW ⁃ ϑΥϩʔɾϑΥϩϫʔ ⁃ νϟοτ ⁃ λΠϜϥΠϯ ˙ ήʔϜͱͯ͠ͷ.JSSBUJW ⁃ ϥϯΩϯά ⁃ Ψνϟ ⁃ ϛχήʔϜ ˔ ϦΞϧλΠϜੑଈ࣌ੑ͕ߴ͍ ˔ σʔλྔ͕ଟ͍ ˔ ΞΫηεͷ࣌ؒతہॴੑ͕ߴ͍
  6. όοΫΤϯυͷٕज़ελοΫ ˙ 1FSM͔Β(PʹҠߦத ⁃ ຊ൪؀ڥͰҰ෦෼͸(PͰಈ͍ͯΔ ⁃ ৽ن։ൃʹؔͯ͠͸ɺ(PͰ࣮૷͍ͯ͠Δ ⁃ طଘͷΤϯυϙΠϯτ΋ॱ࣍Ҡߦத ˙

    ΞʔΩςΫνϟ΋࡮৽ ⁃ .7$͔Β$MFBO"SDIJUFDUVSF΁ͷҠߦ ⁃ ͳͥҠߦ͔ͨ͠͸ޙड़
  7. ຊ೔ͷτʔΫςʔϚ ˙ .JSSBUJWόοΫΤϯυ։ൃʹ͓͚Δ.Z42-ͱͷ޲͖߹͍ํ ⁃ αʔϏε͕੒௕͠τϥϑΟοΫ͕૿͍͑ͯ͘தͰɺ.Z42-ͷΫΤϦىҼͷ ໰୊͕Α͘ൃੜ͍ͯͨ͠ ⁃ .JSSBUJWͷόοΫΤϯυ։ൃʹ͓͍ͯؕͬͨ໰୊ͱɺͦͷରࡦʹ͍ͭͯ࿩͠ ·͢

  8. ໰୊ͦͷ

  9. ͲΜͳ໰୊͕ى͖͍͔ͯͨ ͦͷ̍ ˙ ඇޮ཰ͳΫΤϦ͕ൃߦ͞ΕΔ ⁃ FY w JOEFYʹؚ·Εͳ͍ΩʔΛPSEFSCZͰࢦఆ͠ɺGJMFTPSUʹͳΔ w MJNJUPGGTFUΛར༻ͨ͠ϖʔδϯάΛ࣮૷͠ɺPGGTFU͕େ͖͍஋ʹͳͬͨ

    ͱ͖ʹྼԽ͢Δ w ύʔςΟγϣϯ͕੾ΒΕ͍ͯΔςʔϒϧʹରͯ͠ɺύʔςΟγϣϯϓϧ ʔχϯά͕ޮ͔ͳ͍ΫΤϦΛൃߦͯ͠͠·͏ w ϢχʔΫͳΩʔΛࢦఆͤͣʹഉଞϩοΫΛ͔͚ͯ͠·͍ɺ޿ൣғʹΪϟ οϓϩοΫΛ͔͚ͯ͠·͏ ˙ σʔλྔɺRQTͷ૿Ճʹ൐ͬͯ໰୊͕ݦࡏԽ͍ͯͬͨ͠
  10. ରࡦ ͦͷ ඇޮ཰ͳΫΤϦΛػցతʹݕ஌͢Δ ˙ ͳͥʮػցతʹʯ΍Δͷ͔ ⁃ ଐਓੑͷഉআ w ϨϏϡϫʔͷशख़౓ʹґଘ͠ͳ͍Α͏ʹ͢Δ ⁃

    ϨϏϡʔαΠΫϧͷߴ଎Խ w ਓ͕ؒ΍ΔΑΓ΋଎͍ ⁃ ൈ͚࿙Ε๷ࢭ w ਓؒ͸ݟམͱ͢ ˙ &91-"*/݁ՌΛਓ͕ؒݟΔϨϏϡʔ΋΍͍ͬͯΔ͕ɺͰ͖Ε͹ػցతʹ ݕ஌͢Δํ޲ʹد͍͖͍ͤͯͨ
  11. ରࡦ ͦͷ ඇޮ཰ͳΫΤϦΛػցతʹݕ஌͢Δ ˙ ΫΤϦൃߦ࣌ʹ&91-"*/Λ࣮ߦ͠ɺඇޮ཰ͳΫΤϦʹͳ͍ͬͯͳ͍͔ν ΣοΫ͢Δ ⁃ $*Ͱ࣮ߦ͠ɺ&91-"*/݁ՌʹGJMFTPSU΍GVMMTDBOͳͲؚ͕·Ε͍ͯͳ͍͔ν ΣοΫ͍ͯ͠Δ w

    ͨͩ͠ɺຊ൪؀ڥͱಉ౳ྔͷσʔλΛ༻ҙ͢Δ͜ͱ͕Ͱ͖͍ͯͳ͍ͷͰɺൈ ͚࿙Ε͸ى͜Γ͏Δ ⁃ ຊ൪؀ڥͰ͸ɺΦʔόʔϔου͕͋ΔͷͰશͯͷΫΤϦͰ͸࣮ߦ͍ͯ͠ͳ͍ ͕ɺϢʔβʔӨڹ͕ͳ͍ස౓ʹߜ࣮ͬͯߦ͍ͯ͠Δ
  12. ରࡦ ͦͷ ඇޮ཰ͳΫΤϦΛػցతʹݕ஌͢Δ ˙ ΫΤϦΛએݴ͠ɺMJOUʹΑͬͯνΣοΫ͢Δ ⁃ ZBNMϑΝΠϧʹར༻͢ΔΫΤϦΛॻ͍͍ͯΔ ⁃ (PͰ͸ZBNMʹॻ͔Εͨ42-จ͔Βίʔυੜ੒Λߦ͍ͬͯΔ ⁃

    ZBNMʹॻ͔Εͨ42-จʹରͯ͠MJOUΛ࣮ߦ͍ͯ͠Δ
  13. ໰୊ͦͷ

  14. ͲΜͳ໰୊͕ى͖͍͔ͯͨ ͦͷ ˙ Ͳ͜ͰΫΤϦΛൃߦ͍ͯ͠Δͷ͔෼͔Γʹ͍͘ ⁃ 03.Λ࢖͍ɺΞʔΩςΫνϟ͸.7$ 4FSWJDFΛ࠾༻͍ͯͨ͠ ⁃ ͋ΒΏΔϨΠϠʔ͔ΒΫΤϦΛൃߦ͍ͯͨ͠ͷͰɺ໰୊ͱͳ͍ͬͯΔΫΤϦ ͕෼͔ͬͯ΋ɺͲ͜Ͱൃߦ͞Ε͍ͯΔͷ͔Λಛఆ͢Δͷʹ͕͔͔͍࣌ؒͬͯ

    ͨ
  15. ରࡦ ͦͷ ΫΤϦ͕Ͳ͔͜Βൃߦ͞Ε͍ͯΔͷ͔Λ໌֬ʹ͢Δ ˙ $MFBO"SDIJUFDUVSFͷಋೖ ⁃ ΫΤϦΛൃߦ͢Δͷ͸֎ଆͷϨΠϠʔͷΈ w (PͰ͸લड़ͨ͠ZBNMϑΝΠϧʹॻ͔ΕͨΫΤϦ ͔Βίʔυੜ੒Λ͍ͯ͠Δ

    ˙ ΫΤϦʹίϝϯτΛ࢓ࠐΉ ⁃ ϩάΛݟͨͱ͖ʹͲͷΑ͏ͳίϯςΩετͰൃߦ͞Ε͔ͨ෼͔Δ IUUQTCMPHDMFBODPEFSDPNVODMFCPCUIFDMFBOBSDIJUFDUVSFIUNMΑΓҾ༻
  16. ໰୊ͦͷ

  17. ͲΜͳ໰୊͕ى͖͍͔ͯͨ ͦͷ ˙ ͜͜·ͰͷରࡦΛ࣮ࢪͯ͠΋͢Γൈ͚Δ͜ͱ͸͋Δ ⁃ ؍఺͕࿙Ε͍ͯΔ ⁃ ຊ൪ಉ౳ͷσʔλྔ͕ͳ͍ͱൃݟͰ͖ͳ͍Α͏ͳ໰୊Ͱ͋Δ

  18. ରࡦ ͦͷ ໰୊ൃੜ࣌ͷඃ֐Λ࠷খԽ͢Δ ˙ $BOBSZ3FMFBTFͷಋೖ ⁃ Ұ෦ͷΠϯελϯεʹͷΈߋ৽Λ൓ө͠ɺ໰୊͕ͳ͍͜ͱΛ֬ೝ͢Δ ˙ εϩʔΫΤϦΛ4MBDLʹ௨஌͠ɺૣظݕ஌Ͱ͖ΔΑ͏ʹ͢Δ ⁃

    4FOUSZܦ༝Ͱ4MBDLʹ௨஌͍ͯ͠Δ
  19. ࠓޙͷల๬ ˙ ຊ൪؀ڥͱಉ౳ͷσʔλ͕͋Δ؀ڥͰͷݕূ ⁃ ຊ൪ͱಉఔ౓ͷσʔλྔ͕ͳ͍ͱ࠶ݱ͠ͳ͍Α͏ͳ໰୊Λݕ஌͢ΔͨΊ ˙ MJOUԽͰ͖͍ͯͳ͍ϧʔϧ΁ͷରॲ ⁃ ݱঢ়ϨϏϡʔͰͷࢦఠͷΈ͕ͩɺػցతʹݕ஌Ͱ͖ΔΑ͏ʹ͍͖͍ͯͨ͠ ⁃

    FY w %FBE-PDLΛճආ͢ΔͨΊʹɺಉҰτϥϯβΫγϣϯɾಉҰςʔϒϧͰෳ਺Ϩί ʔυͷϩοΫΛऔಘ͢Δ৔߹͸1SJNBSZ,FZॱʹTPSU͢Δ w SFBENPEJGZXSJUFαΠΫϧ࣌ʹɺద੾ʹഉଞϩοΫΛऔΔ PSBUPNJDʹߋ৽Λ ͢Δ w / ໰୊
  20. ·ͱΊ ˙ .JSSBUJWʹ͓͚Δ.Z42-ͱͷ޲͖߹͍ํ ⁃ ΫΤϦىҼͷ໰୊ʹରͯ͠ɺ$*Ͱͷݕ஌ɺMJOUͷಋೖ΍ΞʔΩςΫνϟͷ࡮৽ͳͲ ͷखΛଧ͖ͬͯͨ ⁃ ࣮ࡍɺ͜ΕΒͷରࡦΛߦͬͨ͜ͱͰɺΫΤϦىҼͷ໰୊͸͔ͳΓݮͬͨ ˙ ଞͷٕज़తͳऔΓ૊Έʹڵຯ͕͋Δํ͸ͥͻςοΫϒϩά

    Λ͝ཡ͍ͩ͘͞ʂ ⁃ IUUQTUFDINJSSBUJWTUSFBN ˙ 8FBSFIJSJOH ⁃ ߴτϥϑΟοΫ؀ڥͰൃੜ͢Δ໰୊ʹ۪௚ʹ޲͖߹͏͜ͱ͕ ޷͖ͳόοΫΤϯυΤϯδχΞืूதͰ͢ʂ
  21. ͋Γ͕ͱ͏͍͟͝·ͨ͠