我已经构建了一个 python/daphne/django/graphene 服务器,并尽我所能优化我的查询——在 Redis 中缓存数据库查询,以便它们基本上是免费的,最终发现即使是非常小的图形模式我仍然看到 200 毫秒以上的开销graphql-core
,显然是在解析我的查询。
我来自以 REST-api 为中心的世界观,在这种情况下,堆栈决策不在我的掌控之中。我只是想让它工作。正常的 django 视图应该在 ~20ms 内返回的查询仍然需要 ~250ms。
鉴于我一直在发送相同的几个查询,一次又一次地跳过对相同查询的重复解析会很棒。
所以,我很好奇 Python graphql 人做了什么,以使他们的服务执行,首先,我想知道:
- 我是否应该期望忍受该查询开销?
- 我可以通过从 Daphne 切换到 Uvicorn 之类的事情来改进,甚至
mod_wsgi
(我没有做任何异步的事情) - 有什么办法可以避免重复解析同一个查询?
感谢您的时间和帮助。