Sie sollten mit höheren Einstellungen von work_mem
experimentieren bis Sie eine In-Memory-Sortierung erhalten. Natürlich können Sie mit Speicher nur dann großzügig sein, wenn Ihre Maschine genug davon hat.
Was Ihre Abfrage viel schneller machen würde, wäre, wenn Sie voraggregierte Daten speichern, entweder unter Verwendung einer materialisierten Ansicht oder einer zweiten Tabelle und eines Triggers für Ihre ursprüngliche Tabelle, der die Summen in der anderen Tabelle aktualisiert hält. Ich weiß nicht, ob das mit Ihren Daten möglich ist, da ich nicht weiß, welche hll_cardinality
und hll_union_agg
sind.