カテゴリー
サインイン 新規登録
学習時間 10時間
難易度 中級
質問投稿
価格 ¥1,980
月額 ¥2,980
Unlimited会員はこちらの教材を含む100種類以上のUnlimited対象教材が学び放題

Railsアプリケーションのパフォーマンス改善をしながらN+1問題を解決するスキルを身に付けよう!

N+1問題によってパフォーマンスが悪化している状態のRailsアプリケーションに対し、実際にチューニングを行いN+1問題を解消していく事で、RailsでのN+1問題自体の理解、考え方や対応方法など正しい対応スキルを身に付ける。

5
最終更新 2022/12
鈴木翔大

『処理時間が95%削減』N+1問題を理解しRailsアプリケーションでの適切な対応スキルを身につけよう

アプリケーションのパフォーマンス劣化を引き起こす要因の1つに、不要なSQLを大量に発行してしまうN+1問題という問題があります。 N+1問題の知識は高トラフィックサービスの運用から、小規模サービスまで規模に関係なく全てのRailsアプリケーション開発に必須のスキルです。

しかしながら、N+1問題のスキル習得というテーマは複雑な内容で、現在N+1問題自体の説明から解決方法まで一貫して学べる教材はほとんど無い状況です。

そこで、そのギャップを埋める為に、パフォーマンスチューニングや大規模システムの開発に多く携わった経験を活かし、学習者が途中で挫折しない様に丁寧な、それでいてしっかりと実践で役立つスキルを習得する内容にしようという想いで本教材を作成しました。

実際の開発現場でのチューニング業務に近い形式での学習を通してN+1への理解を深める

本教材では、N+1起因でパフォーマンスが悪化している状態のRailsアプリケーションに対し、実際の開発現場でのチューニング業務に近い形式で学習する事で、N+1問題自体の理解、考え方や対応方法など正しい対応スキルを身に付けます。

教材内では、パフォーマンスが悪い状態から全てのN+1を解消する事で95%の処理時間を削り、5%の処理時間でページ表示を実現します。

学習内容

  • N+1の現象の理解
  • RailsアプリケーションでN+1が発生する原因の理解
  • RailsでのN+1対策メソッドの理解
  • preloadを使用したN+1解消スキル
  • eager_loadを使用したN+1解消スキル
  • joinsを使用したN+1解消スキル
  • eager_loadでネストした関連モデルのデータの一括取得
  • eager_loadとpreloadの注意点
  • includesメソッド
  • bulletの初期設定
  • bulletでのN+1検知の確認方法
  • bulletを使用する上での注意点

作成するアプリケーションのイメージをつかもう

シンプルなユーザー情報の一覧ページです。 初期状態では筆者環境で表示に7秒弱もかかっているページに対してチューニングを行います。

アプリケーション

本教材の対象者

  • Railsアプリケーションで構築された高負荷システム開発に現在携わっている、これから携わる人、あるいは今後携わりたい方
  • Railsアプリケーションのパフォーマンスチューニングという、より高度なスキルを身につけたい方
  • N+1問題に対して興味がある方

受講における必要条件

  • 基本的CRUD処理を実装できる程度のRailsの知識
  • SELECT句、WHERE句などの基本的なSQLの理解
  • 基本的なGit及びGitコマンドの知識

学ばないこと

本教材はN+1の解消及び、対策方法の理解を目的に作成しています。 その為、Ruby on Railsの特徴であるMVCやオブジェクト指向などのアーキテクチャや、 SQLについての詳しい説明、N+1以外のパフォーマンス改善手法については解説しません。

本教材の対応バージョン

  • Ruby 3.0.0
  • Rails 6.1.0
  • Node.js v12.16.2
    Rails5系でも動作しますが、バージョンが異なると微妙に動作が異なる為Rails6系での学習をお勧めします。

本教材の対象OSや環境

  • Mac OS

カリキュラム

Section 0 はじめに
Section 1 N+1を理解する
Section 2 実際にN+1を解消する
  • 2-1 2章の準備
  • 2-2 preloadを使用して関連テーブルの値を事前読み込みしてN+1を解消する
  • 2-3 eager_loadを使ってループ内で関連テーブルの値を事前読み込みしてN+1を解消する
  • 2-4 joinsを使用して絞り込みのN+1を解消する

講師のプロフィール

教材のレビュー

5.0
5件の評価
100%
0%
0%
0%
0%
ちゃんよ 3ヶ月以上前
非常にわかりやすい。
kou1206 1年以上前
パフォーマンスを気にする段階のレベルになれば、こちらの教材は大変良い教材で、説明もわかりやくかったです。
退会ユーザー 1年以上前
学びがありました