首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当尝试使用1到非常高的联接数进行查询时,GraphQL是否会破坏SQL Server?这样的连接会产生什么问题?

当尝试使用1到非常高的联接数进行查询时,GraphQL是否会破坏SQL Server?这样的连接会产生什么问题?
EN

Stack Overflow用户
提问于 2021-08-02 10:33:25
回答 1查看 71关注 0票数 0

我们的代码开发团队正在实施GraphQL应用程序接口,以取代我们网站访问AWS RDS Web Edition SQL Server2017后端的当前方法。我注意到,跨多个表的查询不使用DB原生关系,而是单独加载每个表,并传递每个表所需的行的过滤参数,这些参数是从以前的表键派生的。

TSQL查询示例:

代码语言:javascript
运行
复制
Select c.Name
from a
inner join b on b.b_id = a.b_id
inner join c on c.c_id = b.c_id

类似的通过GraphQL生成。位伪codish,因为它是保存SELECTs结果的GraphQL:

代码语言:javascript
运行
复制
Select a.b_id [into a table within GraphQL API. Let's call it *b_ids*] 
from a

Select b.c_id [again into a GraphQL table *c_ids*]
from b
where b.id IN([list of ids in *b_ids*])

Select c.Name
from c
WHERE c.id IN ([list of ids in *c_ids*])

我们在轨迹上看到的就是:

代码语言:javascript
运行
复制
Select a.b_id 
from a

Select b.c_id
from b
where b.id IN(1, 2, 3, 4 etc..)

Select c.Name
from c
WHERE c.id IN (1, 2, 3, 4 etc..)

我关心的是这种方法,可能会受到影响的性能,以及级联中可能在1到非常多的行上违反的SQL Server查询阈值(64KB)。我们有有数十万行的连接表。

我会想,如果我的担忧是合理的,那么在网上会有很多东西可以找到,但我什么都没有找到。有没有人一起使用过这些平台,可以给出一些迹象、警告或保证,特别是在使用需要快速响应的网站时。非常感谢你的建议。

EN

Stack Overflow用户

发布于 2021-08-02 12:01:34

我对GraphQL一无所知,但是包含大型IN列表的查询的解析和编译成本可能很高,而且不能扩展到任意大小的数据。然而,TSQL查询的limit大小是~65MB而不是64KB,在达到这个限制之前,性能就应该成为一个问题。

作为一种更具伸缩性的替代方法,可以使用表值参数、JSON数组或批量加载临时表来传递数据。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68620114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档