Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
Tell your own story through comics
letsgokoyo
0
760
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
The Cult of Friendly URLs
andyhume
79
6.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
Become a Pro
speakerdeck
PRO
31
5.7k
Thoughts on Productivity
jonyablonski
73
5k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
We Are The Robots
honzajavorek
0
120
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
410
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!!