はじめに 各種のDB中の集計作業を行うにあたって、以下のようなデータをどうしても扱わなければならない場合は、SQLのみで完結させないことを検討しなければ、サーバリソースを大量に消費した挙句、何時まで経っても作業が完了しないということが有ります。 SQL操作だけに頼らないことを検討したい集計例 explainすることで大体の傾向はわかりますが、おおよそ以下のような要素を含む集計が対象となります。 対象のレコード数が巨大である(数百万レコード以上) DBの余剰リソースにもともと余裕が無い indexのふられていない項目で集計/joinしなければならない join対象の項目がやけに多い not in 巨大なサブクエリ is null group by like etc... ではどうするか? 集計対象のレコードを一旦ファイルに吐き出した上で、ファイルベースの処理をしてしまいましょう。 実践例1