先週末に本稼働したシステムが、実際に運用してみると性能的に問題があったので、改善してリリースした。
テストが十分じゃなかったから、あとは運用しつつ確認する感じになっちゃうかな。
今日のやったこと、できたこと
- プログラミング
- システムメンテナンス
- 取引先のホームページ更新
- 取引先の業務代行
明日への課題
- システムメンテナンス
- 経理処理
- ブログ記事執筆
今日のワーク
今回起こった性能の問題は、大量データの読み込みからのinsertとupdate。
テストでは数100件程度までしかやらなかったので問題なかったけど、本番環境で10万件のデータを対象にやったら待たされる待たされる。
これじゃ20万件目標にしてるのに話にならないので、取り敢えず改修することにした。
今回、DBの処理速度を改善する方法を調べた限り、下記の方法があるのかなと。
- バルクインサートに変える
- commit回数を減らす
- インデックスを追加する
バルクインサートをするにあたっては便利なgemがあったし、commit回数減らすのも簡単にできた。
インデックスも当然簡単に追加できるのですぐに実行すると、驚きのスピード改善が!
それまで10万件で30分くらいかかってたのに、改修後は5分もかからない!
たったこれだけどこんなにも変わることに衝撃を受けた。
ただ、updateはロジックをほとんどいじってないので、もっと処理スピードを上げることも可能かなと思ってる。
現状1件1件updateしているのでね。
あとはいつも通り、取引先の業務をこなして終わり。
明日は祝日だけど、経理処理をしようと思う。
そんな感じ。