Graphql 是否查询数据库本身?
Does Graphql query the database itself?
在 .NET C# 中,我们使用 Odata 对来自 SQL 数据库的数据库结果进行筛选、分页和排序。 .NET 中的 Odata 实际上会进入数据库,并查询 WHERE,ORDER By Filters 到数据库,而不是提取所有数据库结果,并在 api 内存上应用过滤。
我很好奇 GraphQL 是否在内部查询数据库或在 API 内存集上应用过滤。
资源:
GraphQL 主要是一个规范,它定义了一种查询语言,一种类型系统,way/framework 这样你就必须遵循它来实现基于这种查询语言和类型系统来查询或改变数据. (即在 GraphQL 术语中实现各种解析器)。
它没有定义与数据存储位置相关的任何内容。所以它没有定义与 SQL 和 SQL 数据库相关的任何内容。
I am curious if GraphQL, queries the database internally or applies
filtering on the API memory set.
所以这取决于你如何实现它。要有好的性能,当然你必须将你定义的查询类型转换成一个高效的SQL,带有一个高效的where和limit子句,并发送到DB内部查询结果集。
在 .NET C# 中,我们使用 Odata 对来自 SQL 数据库的数据库结果进行筛选、分页和排序。 .NET 中的 Odata 实际上会进入数据库,并查询 WHERE,ORDER By Filters 到数据库,而不是提取所有数据库结果,并在 api 内存上应用过滤。
我很好奇 GraphQL 是否在内部查询数据库或在 API 内存集上应用过滤。
资源:
GraphQL 主要是一个规范,它定义了一种查询语言,一种类型系统,way/framework 这样你就必须遵循它来实现基于这种查询语言和类型系统来查询或改变数据. (即在 GraphQL 术语中实现各种解析器)。
它没有定义与数据存储位置相关的任何内容。所以它没有定义与 SQL 和 SQL 数据库相关的任何内容。
I am curious if GraphQL, queries the database internally or applies filtering on the API memory set.
所以这取决于你如何实现它。要有好的性能,当然你必须将你定义的查询类型转换成一个高效的SQL,带有一个高效的where和limit子句,并发送到DB内部查询结果集。