Skip to content

Conversation

mpg-yuta-goto
Copy link

@mpg-yuta-goto mpg-yuta-goto commented Sep 24, 2025

📝 概要

  • 投稿(Post)一覧画面のコメント部分で、毎回User Loadを読んでいることが判明した。 上記の原因は、行ごとにcomment.user.nameを参照してるため、include or preloadを使用しないとコメント数分usersを個別selectしてしまう。
    そのため、一覧取得に事前に関連情報をpreloadする処理を追加した。
    tagに関しても同様です🙇

🔍 変更内容

  • 新機能追加
  • バグ修正
  • リファクタリング
  • ドキュメント修正

✅ 動作確認

  • ローカルでの動作確認済み
  • テストコード追加 / 既存テストが通ることを確認済み

📸 スクリーンショット

User

1クエリでまとめて取得できている
image

Tag

5件のpost分を一括で取得できている
image

💬 補足

[修正理由]
Post一覧画面の`_comment.html.erb`で毎回`User Load`を読んでいることが判明した。
上記の原因は、行ごとにcomment.userを参照してるため、include or preloadを使用しないとコメント数分`users`を個別selectしてしまう。
そのため、一覧取得に事前に関連情報をpreloadする必要がある。
@mpg-yuta-goto mpg-yuta-goto changed the title Post一覧取得時のN+1問題を解消 Post一覧取得時のN+1と2度引きを解消 Sep 24, 2025
@mpg-yuta-goto mpg-yuta-goto changed the title Post一覧取得時のN+1と2度引きを解消 Post一覧取得時のコメントデータのN+1問題とタグデータの2度引きを解消 Sep 24, 2025
@mpg-yuta-goto mpg-yuta-goto changed the title Post一覧取得時のコメントデータのN+1問題とタグデータの2度引きを解消 Post一覧取得時のN+1問題と解消 Sep 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant