【问题标题】:Does Graphql query the database itself?Graphql 是否查询数据库本身?
【发布时间】:2022-01-26 03:33:13
【问题描述】:

在 .NET C# 中,我们使用 Odata 对来自 SQL 数据库的数据库结果进行过滤、分页、排序。 .NET中的Odata实际上会进入数据库,并查询WHERE,ORDER By Filters到数据库,而不是提取所有数据库结果,并在api内存上应用过滤。

我很好奇 GraphQL 是在内部查询数据库还是在 API 内存集上应用过滤。

资源:

https://graphql.org/

【问题讨论】:

  • 我相对有限的 GraphQL 经验表明 GraphQL 与数据访问没有任何关系。它本质上是 REST API 的替代品,与数据的持久化、检索等方式没有任何关系。

标签: java spring-boot graphql odata


【解决方案1】:

GraphQL 主要是一种规范,它定义了一种查询语言、一种类型系统、一种方式/框架,因此您必须遵循它来实现基于这种查询语言和类型系统的数据查询或变异。 (即在 GraphQL 术语中实现各种解析器)。

它没有定义与数据存储位置相关的任何内容。所以它没有定义任何与 SQL 和 SQL 数据库相关的东西。

我很好奇 GraphQL 是在内部查询数据库还是应用 过滤 API 内存集。

所以这取决于你如何实现它。要想有好的性能,当然要把自己定义的查询类型转换成高效的 SQL,加上高效的 where 和 limit 子句,然后发送到 DB 内部查询结果集。

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2017-01-11
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2019-01-12
    • 2021-12-01
    • 2020-09-06
    相关资源
    最近更新 更多