PHPで処理をしているときに、データ量がある一定を超えたあたりから極端に処理速度が遅くなってきました。
処理の流れとしては、
1.MySQLよりデータの抽出
2.抽出したデータを全て配列aに格納
3.配列aに対して処理をして別の配列bに格納
という処理です。
データ量が数万、数十万件あたりまでは問題なかったのですが、百万件近くになったときに著しく処理が遅くなってきました。
まず、各箇所で処理時間を計測してみました。
すると、3の処理をしているときに徐々に処理時間が遅くなってくることが分かりました。
??と思っていろいろと検討してみた結果、まず1のMySQLの結果リソースの解放をする。
その次の3で配列aについても解放をする。
データが少ないときはとりあえず乗り切れているんでしょうけど、データが肥大化するに伴い今回のようなことが発生することが分かりました。
恐らく、「そんなことは設計段階で把握しておかないと」って怒られそうですが、また一つ勉強になりました。
「使わないものは、片づけをする」←人として基本ですよね。