首页 文章

GraphQL中继连接优化

提问于
浏览
2

使用Relay GraphQL(graphql-relay-js)连接并尝试确定优化数据源查询等的最佳方法 .

一切正常,但连接结果被切片时效率低下 . 在下面的查询示例中,项目上的解析器将获得200条销售记录727506341339,而实际上我们只需要返回1条 .

我应该注意,为了满足此请求,我们实际上进行了两次数据库查询:1 . 获取与销售相关的所有项目ID 2.获取每个项目ID的项目数据 .

在测试和查看graphql-relay-js src时,看起来切片发生在最终的连接解析器上 .

是否提供了一种方法,缺少嵌套连接或改变connectionFromArray的切片结果,这将允许我们切片提供给连接的结果(项目ID),然后在连接解析器中根据已切片的id结果获取项目详细信息组?这将优化第二个查询,因此我们只需要查询1个项目的详细信息,而不是所有项目......

显然我们可以实现自定义或嵌套连接,虽然看起来这是有用的,因此我觉得我在这里遗漏了一些东西......

示例查询:

query ItemBySaleQuery {
    viewer {
      item (sale: 727506341339) {
        items (first:1){
          edges {
            node {
              dateDisplay,
              title
            }
          }             
        }
      }
    }
  }

1 回答

相关问题