はじめに
今回はDataloaderを使用してN+1問題を解消する方法を解説したいと思います。
Dataloaderはデータ取得を一度に行いN+1問題を解決するGraphQLに組み込まれているライブラリです。
GraphQLでは、ネストされた構造で取得することが多いため、その構造上N+1問題が起きやすいです。
Dataloaderでは上記問題を簡単に解決することができます。
動物の一覧と種別を取得する例をもとに解説していきます。
モデル
class Species < ApplicationRecord
has_many :animals
end
class Animal < ApplicationRecord
belongs_to :species
endスキーマ
type Animal {
id: Int!
name: String!
species: Species!
}
type Species {
id: Int!
name: String!
}
type Query {
animals: [Animal!]!
}リゾルバ
シンプルにallですべての動物を返します。
Animal.allクエリ例
{
animals {
id
name
}
}レスポンス例
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/53852
エンジニア積極採用中です!
現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!
採用ページはこちら:https://rightcode.co.jp/recruit
社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life
フリーランスエンジニア大募集中!
現在、「WEBエンジニア」「フロントエンジニア」「データサイエンティスト」など、様々な職種のフリーランスエンジニア様を募集中です。まずは以下よりお気軽にご応募ください!
採用ページはこちら:https://itanken.com/register
社長と一杯飲みながらお話しませんか?(転職者向け)
特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!
ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。
Wantedly:https://www.wantedly.com/companies/rightcode
コーポレート:https://rightcode.co.jp/