我最近开始学习graphql
,此刻我觉得非常方便。但是,在将其与object-relational
或object-oriented
数据库管理系统进行连接时,基于每个DBMS的基础都有一些复杂性。出于这个原因,我开始寻找可以使过程更高效的解决方案,然后我找到了prisma。我知道prisma
正在完成将我的数据映射到任何数据库的所有繁重工作,但是,我看到它充当服务器和数据库之间的中间层。所以,我的问题是:
在应用程序中使用pyramida真的值得吗?如果是这样,我如何解释中间层增加的开销(就性能而言)?
答案 0 :(得分:2)
我在Prisma工作,很想对此做出回应。
Prisma在编写GraphQL服务器时的最大好处是,它为您节省了大量的CRUD样板文件,否则您必须在解析器中编写这些样板文件。与GraphQL Nexus搭配使用时,您可以通过在生成的CRUD构建基块上进行构建来以编程方式开发GraphQL模式,同时还可以提供一种类型安全的API来访问数据库。
如何解释中间层增加的开销(从性能方面而言)?
当与您的应用程序服务器一起托管时,Prisma服务器实际上并没有增加任何性能损失。还要注意,我们当前正在重写在Rust中Prisma服务器中运行的查询引擎,这将使Prisma服务器成为可选项,并且您将Prisma用作简单的库(类似于您使用TypeORM或Sequelize的方式) )。然后,查询引擎将作为二进制文件在与Web服务器相同的主机上运行,并从那里连接到数据库。
我建议您看看GraphQL Nexus docs,以了解有关具体工作流程的更多信息。如果您还有其他问题,请告诉我,我们很乐意为您提供帮助:)