问题描述
我知道使用大型数据集时GraphQL会变慢,但是我所拥有的是大约60个项目的数组。例如。在一个简单的查询中,我获取了id
,title
和country
,Apollo服务器平均花费3毫秒以上的时间来返回数据,而解析器重新运行调用REST的数据不到200毫秒的终点。我使用Apollo Studio调试查询,但是得到的结果根本对我没有帮助-到处都少于1毫秒。
如果我要使用2个嵌套查询进行更复杂的查询,则相同的60个项目需要15到20秒的时间,而且嵌套查询相当轻。
我在Google上搜索后发现,人们对成千上万个商品的查询非常繁琐,他们面临类似的问题,而他们谈论的只是几秒钟,而不是15-20秒。
感觉好像我的设置有问题。我没有任何错误。
我正在使用apollo-server-express
进行基本设置:
const server = new ApolloServer({
typeDefs,resolvers,introspection: true,playground: !(process.env.NODE_ENV === 'production'),engine: {
reportSchema: true,graphVariant: 'current',},subscriptions: {
onConnect: () => winston.info('Connected to websocket'),ondisconnect: webSocket => winston.info(`disconnected from websocket ${webSocket}`),context: ({ req }) => ({
//eslint-disable-line
req,pubSub,}),});
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)