【问题标题】:Graphql nested query is extremely slowGraphql 嵌套查询非常慢
【发布时间】:2018-04-09 07:04:21
【问题描述】:

当我们的项目基于 REST 时,响应时间为 200 毫秒~ 更改项目时在 GraphQL 中。

由于每个节点都在尝试解析,并且在解析之后,它们的子实体也在解析。 导致极高的延迟,响应时间为 - 11 秒!

我所做的是尝试提取所有需要的信息,包括所有子实体,并从查询解析器中解析这个巨大的对象。

响应时间减少到 800 毫秒。

但是,子实体的解析器仍在发生! (我不得不为这个测试关闭它们)。 在某些情况下如何关闭它们?

有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: graphql express-graphql


    【解决方案1】:

    听起来您可能只想在父对象上的属性未定义时才获取每个字段的关联数据。所以,如果你的解析器看起来像这样:

    foos ({ id }, args, context) {
      return getFoos(id)
    }
    

    只需进行有条件的获取数据的调用,如下所示:

    foos ({ id, foos }, args, context) {
      return foos ? foos : getFoos(id)
    }
    

    【讨论】:

    • 谢谢,我试试。你有没有机会知道如何降低 graphql 查询延迟?
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2021-01-29
    • 2020-12-02
    • 1970-01-01
    • 2018-06-13
    • 2019-05-30
    • 2021-01-14
    • 2017-06-16
    相关资源
    最近更新 更多