Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
100万レコード超えそう(その2)
Search
wakio
June 20, 2024
Programming
100
1
Share
100万レコード超えそう(その2)
wakio
June 20, 2024
More Decks by wakio
See All by wakio
世界一流エンジニアの思考法を読んでみた
wakino
1
71
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.7k
Inside Stream API
skrb
1
160
Modding RubyKaigi for Myself
yui_knk
0
440
AI時代になぜ書くのか
mutsumix
0
450
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
1.8k
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
210
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
1
990
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
240
AI 時代のソフトウェア設計の学び方
masuda220
PRO
23
8.1k
今さら聞けないCancellationToken
htkym
0
190
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
150
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
1
490
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
280
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
100
How STYLIGHT went responsive
nonsquared
100
6.1k
Scaling GitHub
holman
464
140k
Design in an AI World
tapps
1
220
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
270
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
The browser strikes back
jonoalderson
0
1.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
340
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
300
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
310
A Tale of Four Properties
chriscoyier
163
24k
Transcript
100万レコード超えそう その2
自己紹介 名前:ミヤワキ 個人開発&受託開発 組込からスマホアプリまでやります 好きな言語はKotlin 山を走るのが趣味
とある家計簿アプリのお話です
基本スタンドアローンで動きますが、 家計簿の同期はサーバ経由です
現在、登録ユーザ1700人→4000人程度で 24万→87万レコードのテーブルがあります 収入・支出履歴テーブルのレコード数の推移
このまま順調にいくと 100万レコードを超えるかも!
100万レコードを超えると パフォーマンスの劣化が顕著になるらしい 実際、1回の同期に5,6秒かかる ケースもでてきた
でも安易にサーバ増強するとか 富豪的アプローチはとりたくない t3.microで頑張りたい! ※ t3.micro: vCPU2個 メモリ1GB
4個の施策 ・手動で同期してもらう ・古いデータをS3に逃がす ・Bulk Insertを使う ・パーティショニング
S3 EC2 RDS 年1の移動 ユーザ登録・ログイン 古いデータをS3に逃がす 2年分だけ保存
1万レコードの挿入(MariaDB) Bulk単位 処理時間(msec) Bulkなし 2,440 1000 410 10000 259 1万レコードの挿入(SQLite)
Bulk単位 処理時間(msec) Bulkなし 44,189 10 2,839 100 1,537 200 1,867 500 2,967 t3.micro Huawei P20lite Android9 Bulk Insertを使う
ここまでやって、現在は1回の同期が 平均90ms未満、最大3秒
100万レコード超えて パフォーマンスが劣化したらやってみます 乞うご期待! パーティショニング