EC-CUBEの受注詳細CSVダウンロードというプラグインを使って受注データをダウンロードしようとした時に、商品オプションや受注データの数が多いと、データベースに負荷がかかってしまい、データをダウンロードするのに物凄く時間がかかるなんてことがあった。
さらに、その処理に時間がかかりすぎた結果、サーバにそのサイトを落とされてしまい、閲覧できなくなってしまった。

そこで以下の対策をすることにした。

  1. 取得データの選別
  2. データの取得に時間がかかりそうな時は諦める
  3. ダウンロードできる日付などの条件に制限をかける

①はシンプルに取得するデータ量を減らすことでダウンロードにかかる負荷を下げる。これはシンプルな方法だが、とても大きな効果を見込める。

②はダウンロードする時にデータ量が多い場合(つまりデータの取得に時間がかかる場合)は、取得できるまで待つのではなく、諦めて早めに処理を終えてしまう。そうすることでデータのダウンロードという目的は達成できないが、サイトを落とさないですむ。安全弁みたいなイメージだ。

③について。②の方法はデータベースのバージョンによって実施が難しいケースがある。そうした時は一度に多くのデータをダウンロードするのは控えてもらい、小分けにしてダウンロードをお願いすることになる。そのため、多くのデータを落とそうとした時(日付にして1年分のデータを落とそうとした時など)は、エラーを出すようにする。

このようにして複数の処置をすることでパフォーマンスを改善しつつ、サイトが落ちるという最悪のケースを避けることができるようになった。

Contact
EC-CUBE に関するお問い合わせは、当サイトのContactページのフォームよりお問い合わせください。