Hasura 对聚合查询有限制吗?

Is there a limit in Hasura for aggregation queries?

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

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

示例 – 我有一个 table 约 1200 万行,当我执行此聚合查询时:

{
  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 无关。