$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
パフォーマンス改善
Search
takakuda
October 31, 2019
0
160
パフォーマンス改善
takakuda
October 31, 2019
Tweet
Share
More Decks by takakuda
See All by takakuda
gem version up
takakuda
0
2.3k
リファクタリング
takakuda
0
44
ぼくらのかんがえたさいきょうのfactory_bot
takakuda
0
2.6k
LINE, Messenger比べてみました。
takakuda
0
1.4k
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
22
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
75
Become a Pro
speakerdeck
PRO
31
5.7k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Mind Mapping
helmedeiros
PRO
0
39
Bash Introduction
62gerente
615
210k
Typedesign – Prime Four
hannesfritz
42
2.9k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
320
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
260
Transcript
テクノロジー開発部 takakuda
• 自己紹介 • 大きくなったDB負荷 • logテーブルの設計 • まとめ Agenda
自己紹介
- 前職 仙台で雛人形売り - 2017.08 ~ Zeals - Ruby -
Rails ZEALS Engineer Rails エンジニア :takakuda :@kutaike1504
パフォーマンス改善
サービスが大きく成長したことによって 発生した問題とどう対処していったのか
アーキテクチャの変更
https://tech.zeals.co.jp/entry/2019/09/24/105716
なぜアーキテクチャを変更したのか?
パフォーマンスが悪くなったから
アーキテクチャ変更によって今は対応 できているけども なぜ変更する必要があったのか? どうすれば変更なしで対応できたの か?
自分の失敗より 他者の失敗から学ぶ
大きくなったDB負荷
ユーザーの行動log
大量のSQL write によって Appサーバーが落ちる
logをDBに書き込むのではなく log dataとして外部出力する
非RDB化 詳しくは弊社 TECH BLOGへ! https://tech.zeals.co.jp/entry/2019/08/26/101131
大量のSQL writeがなくなった
どうすれば大きくなるDB負荷を避ける ことができたか?
logテーブルの設計
どういう設計をすればよかったのか?
パーティション…とか?
1つのテーブルを分割して管理する仕組み 巨大なデータを複数に分割するこができ、 分割したデータごとに削除や参照ができる
log系のテーブルであれば基本的に時系列的に増えて いくものだし、現在に近いレコードに対する参照がほとん どのはず。 古いレコードを参照する場合でも特定の期間を指定する パターンが多い。 であれば日付でパーティションを切るのは有効
ただし制約もある - クエリキャッシュをサポートしない - 外部キーをサポートしない など…
データサイズに注意する どこかでデータを切り捨てることを考 える必要がある
まとめ • データサイズに注意して予め設計する
LET'S START NEXT INDUSTRIAL REVOLUTION WITH OUR FLYING SHUTTLE
Thank you!!