Mais conteúdo relacionado
Semelhante a Zaim 500万ユーザに向けて (20)
Zaim 500万ユーザに向けて
- 9. ZaimのDB構成
• おもに Amazon RDS for MySQLを利用
• user_idのRangeでパーティションを設定
- 家計簿情報はユーザごとに交わらない
• 今回対象のDB規模
- XXX億のレコード数
- ものすごく膨大なI/O
9
- 17. やること
• 1つのDBを複数の少し小さいDBにする
- 今回は5つ
• 元DBのデータを5つに分割する
- mod(user_id, 5) = X みたいな
• 5つのデータベースの設定を調整
- auto_increment_increment
- auto_increment_offset とか
• サービス側が適切に接続するように変更
やることは簡単ですね 17
- 20. 準備編 (インサート)
• 普通にインサート
- 普通に遅い
• transactionやめたら → 並列で書き込んでくれる?
- めちゃくちゃ遅くなる → 書き込んでくれない
• パーティションごとに書き込む
- やっぱり早くなる
- でも,だんだん遅くなる
• Index削除してみる
- ずっと早い状態
• binlogとかを書かないようにする
- 早くなる
20
- 22. 結論
• Index, パーティションを有効に使う
• 並列できるところは並列化する
• Transactionは大きいほど早い
• ログは書き込まない方が容量削減とかに繋がる
• 事前にできることがあるなら事前にする
• Amazonの動向をチェックしておく
22