タグ

2019年8月5日のブックマーク (1件)

  • Railsアプリの処理を100倍以上に高速化して得られた知見 | Recruit Tech Blog

    はじめまして。2019年4月から妊娠・出産アプリ『Babyプラス』の開発チームにJOINした濱田です。 『Babyプラス』のバックエンドはRailsで実装されているのですが、とあるCSV生成処理がとても遅かったので100倍以上に高速化しました。この過程でRailsアプリの処理高速化に関する以下の知見が得られたので、具体例を交えて共有します。この知見は、ActiveRecordを使用してMySQLなどのRDBMSからデータ抽出をする様々な場面で活用できると思います。 いわゆる「N+1問題」を起こさないのは基 「ActiveRecordインスタンスの生成コスト」はそれなりに高い pluckはjoinsと組み合わせることで他テーブルのカラム値も取得できる 前提: DBスキーマとデータ規模 今回の処理高速化に関わるモデルのDBスキーマとデータ規模は以下の通りです。なお、これらはエントリ向けに少

    Railsアプリの処理を100倍以上に高速化して得られた知見 | Recruit Tech Blog
    rryu
    rryu 2019/08/05
    9000個のActiveRecordオブジェクトの生成を省くと1秒以上速くなる。CSV生成処理でそこまで追い込むかは微妙なところ。