DataLoader

ABOUT

  • データベースアクセスを効率的に行うためのライブラリ
  • データアクセス層が効率的にデータ取得を行うための「バッチ処理機能」と「キャッシュ機能」を抽象化したもの
  • DataLoader 自体はGraphQLサーバに限らず一般的にも使える

メリット

  • データアクセス層で発生するN+1問題を解消
  • 必要なデータだけを再取得するように最適化できる

仕組み

  • 即時取得ではなく非同期で取得
  • 遅延読み込みによって、必要なデータが分かった後で最適化して読み込みを開始する

参考

GraphQL N+1問題を解決するDataLoaderの仕組みとサンプル実装