Sql graphql优化

Sql graphql优化,sql,graphql,relay,Sql,Graphql,Relay,各位! 是否可以访问节点定义的信息和上下文。在这里我可以有抽象语法树(AST)。我实际上需要它来优化我的对象(即节点)请求 例如:如果我有下一个graphql查询: query { node(id:'some_id'){ name, surname, friends{ edges node{ { name, surname} }}, posts{edges{ node{ id, text} }}}. 因此,在这种情况下,首先我必须对我的个人(即节点)进行SQL查询,然后我必须询问我个人的

各位!

是否可以访问节点定义的信息和上下文。在这里我可以有抽象语法树(AST)。我实际上需要它来优化我的对象(即节点)请求

例如:如果我有下一个graphql查询:

query { node(id:'some_id'){ name, surname, friends{ edges node{ { name,
  surname} }}, posts{edges{ node{ id, text} }}}. 
因此,在这种情况下,首先我必须对我的个人(即节点)进行SQL查询,然后我必须询问我个人的SQL朋友,并对个人发表的帖子进行另一个SQL查询。可能是后来所有朋友的帖子。这实际上是非常昂贵的。我希望检查请求中的字段并构建一个SQL查询

怎么做会更好


谢谢大家!

数据加载器可以帮助您完成这项工作,而无需检查查询。本质上,它支持对昂贵的调用进行批处理。您编写了一个批处理函数,该函数为每个批处理调用,在此函数中您构建了一个包含所有单个调用的SQL查询。非常好

本质上,它允许您在解析器中生成朴素的、切中要害的DB请求,并且仍然可以获得单个DB查询的性能优势。希望这有意义

阅读这里的文档并试一试(太棒了)