ORM と SQL
ツイートでも触れましたが、最近は関数型言語に触発されて、メソッドチェーンと言うかパイプラインで書く事が多くなりました。
おかげで、あまり好きではなかったORM(Rails だとActiveRecord)にも好意的な見方を出来るように。
ですが…。
遅いのです。
ActiveRecord は遅いのです。
ちょっと複雑な処理を書いたり、差分のユニオンクエリ的な要求をするともう、とても実用に耐えないんじゃないかという遅さ。
ですが、そんな非実用的なものがWeb フレームワークの定番どころとして挙げられるわけはないので、おそらく私のプログラムの書き方か、設計がマズいのでしょう。
最近は関数型の記述を心がけ始めたのでORM(と言うか、Enumerater とRails のActiveRecord )の書きやすさが感じられて嬉しいのですが、いかんせん遅い。
泣くほど遅い。
書き方か使い方を間違えているんやろうなあ。— あおのうま (@uma_blue) 2017年10月31日
そんなわけで、遅い箇所はとりあえずSQL ベタ書きに差し替えてお茶を濁しつつ、パフォーマンスチューニングというか、あるべき書き方を調べるのでした。