CREATE TABLE test_table
(
id uuid NOT NULL,
"RefId" uuid NOT NULL,
"timestampCol" timestamp without time zone NOT NULL,
"bigint1" bigint NOT NULL,
"bigint2" bigint NOT NULL,
"int1" integer NOT NULL,
"int2" integer NOT NULL,
"bigint3" bigint NOT NULL,
"bigint4" bigint NOT NULL,
"bigint5" bigint NOT NULL,
"hugeText" text NOT NULL,
"bigint6" bigint NOT NULL,
"bigint7" bigint NOT NULL,
"bigint8" bigint NOT NULL,
"denormalizedData" jsonb NOT NULL,
"textCol" text NOT NULL,
"smallText" text NOT NULL,
"createdAt" timestamp with time zone …
Run Code Online (Sandbox Code Playgroud) 我试图在 Postgres 9.4 中加速这个查询:
SELECT "groupingsFrameHash", COUNT(*) AS nb
FROM "public"."zrac_c1e350bb-a7fc-4f6b-9f49-92dfd1873876"
GROUP BY "groupingsFrameHash"
HAVING COUNT(*) > 1
ORDER BY nb DESC LIMIT 10
Run Code Online (Sandbox Code Playgroud)
我在 上有一个索引"groupingsFrameHash"
。我不需要精确的结果,模糊近似就足够了。
这是查询计划:
Limit (cost=17207.03..17207.05 rows=10 width=25) (actual time=740.056..740.058 rows=10 loops=1)
-> Sort (cost=17207.03..17318.19 rows=44463 width=25) (actual time=740.054..740.055 rows=10 loops=1)
Sort Key: (count(*))
Sort Method: top-N heapsort Memory: 25kB
-> GroupAggregate (cost=14725.95..16246.20 rows=44463 width=25) (actual time=615.109..734.740 rows=25977 loops=1)
Group Key: "groupingsFrameHash"
Filter: (count(*) > 1)
Rows Removed by Filter: 24259
-> Sort (cost=14725.95..14967.07 rows=96446 …
Run Code Online (Sandbox Code Playgroud)