为什么分组设置查询比Postgres 9.5.4中的UNION查询花费的时间更长?

时间:2016-12-16 01:44:15

标签: sql postgresql

我正在尝试改进postgres查询,该查询基于3个select语句与group by子句的并集来生成表。如何加快分组集查询?是JOIN条款导致经济放缓的原因吗?我认为分组集应该比联合更具开发性。

以下是Union和Grouping集查询共有的查询的第一部分:

  SELECT data_fetch.snapshot_id,
    count(*) AS movie_count,
    sum(data_fetch.view_count) AS view_count,
    sum(data_fetch.comment_count) AS comment_count,
    sum(data_fetch.like_count) AS like_count,
    sum(data_fetch.dislike_count) AS dislike_count,
    sum(data_fetch.share_count) AS share_count,
    COALESCE(movies.category, 3) AS movie_category,
    COALESCE(movies.type, 'movie') AS movie_type
   FROM (data_fetch JOIN movies ON ((movies.id = data_fetch.movie_id)))

以下是rails控制台中运行的原始sql EXPLAIN ANALYZE VERBOSE的2个查询的输出:

分组设置查询

https://explain.depesz.com/s/XJE5

联盟查询:

https://explain.depesz.com/s/TdFE

0 个答案:

没有答案