こんにちは、ピクスタ開発部の星直史です id:watasihasitujidesu です。 idがwatasihasitujidesuですけど、執事ではありません。エンジニアです。 今日は、タイトルの通り、ActiveRecordが提供するeager_loadとpreloadを使い、データ取得時間を60%高速化したときの話をします。 目次 要件 修正前のコード 処理が遅い原因 対応方針 修正後のコード まとめ 要件 このブログ投稿時点で、ピクスタで販売している素材点数は1500万点を越えています。 検索データはAWS CloudSearchに格納しており、全素材のDocumentを更新すると膨大な時間(約2週間)がかかっていました。 このまま素材点数が増え続けた場合、データ更新時間も線形的に長くなり、気軽に更新ができなくなってしまうため、 処理時間の高速化する必要が出てきました。 また、メ