データベース処理でサーバーに高負荷を招いてしまったこと

By | 2016/01/26

ちょっと前のことですが、データベースの処理が重すぎていろいろ大変な目にあいました。
多少負荷テストをやってはいたのですが、結局テストしてないところが原因でデータベース負荷が高まり、それが原因でウェブサーバーも高負荷状態になっていました。

 

この辺についてはプログラム云々というより自分の開発姿勢に関わる部分だと思いました。
経験不足ということもあるのですが、機能を実装していく手順の中で、設計とテストと実装をちゃんとやっていくべきです。それに加えてデータベースを扱う場合はSQLが意図した通りに動くのかやその処理に無駄がないか、負荷が高くないかといったことをチェックする必要がありますが、これがおろそかになっていました。というよりどう対応していくかまったくイメージがありませんでした。

 

そこでどう対応するかについて考えました。
現状データベースに接続しないとテストできません。これがなかなか面倒です。というのもテストに必要なデータベースの状態を作るのが非常に面倒です。リファクタリングやテストの本を読むと大抵「分離せよ!」といっていて確かに分離しないと継続的なテストが困難です。

 

ただそうはいっても、データベースに接続することで取得したり更新したりするデータについて、どうやってダミーデータとやりとりさせるのか、いまいちわかりません。SQLを解析してどうこうするのは面倒そうだしなぁ。

 

まあちょっと考えていることがあるので、それやってみてうまくいったらここでも報告できたらいいと思います。
今日はなんだかもう眠いのでこの辺で、ではでは。


コメントを残す

メールアドレスが公開されることはありません。