Hasura中对聚合查询有限制吗


大家好,我今天在是否使用graphQL的问题上有点冲突。目前的情况是,我正在处理一个非常大的数据库,在这一点上,我想知道在聚合查询中(在哪里可以获得计数(是否有限制,或者考虑到这个数据库包含数百万条记录,这样做是否可行。欢迎任何意见和建议,谢谢!

Hasura本身不处理聚合,它将几乎所有操作委托给底层数据库。

示例-当我执行这个聚合查询时,我有一个大约有12M行的表:

{
price_history_aggregate {
aggregate {
count
}
}
}

准确生成的SQL是:

SELECT
json_build_object(
'aggregate',
json_build_object('count', COUNT(*))
) AS "root"
FROM
(
SELECT
FROM
(
SELECT
*
FROM
"public"."price_history"
WHERE
('true')
) AS "_0_root.base"
) AS "_1_root"

正如您所看到的,这个SQL已经在构建JSON响应:{"aggregate" : {"count" : 12284957}}

现在,运行这个查询需要几秒钟的时间,这里有一些关于PostgreSQL计数缓慢的讨论(https://wiki.postgresql.org/wiki/Slow_Counting)但这与Hasura或GraphQL无关。

最新更新