Generelt finder jeg den omfattende brug af UNION
antyder dårligt databasedesign. Der er tilfælde, hvor UNION
og UNION ALL
giver mening, men de burde være relativt sjældne uden for rekursive almindelige tabeludtryk.
PostgreSQL giver et ret stort antal muligheder for at holde ydelsen på en enkelt tabel overskuelig, og som du påpeger, er delvise indekser en meget god måde at håndtere dette problem på.
Det største problem med at opdele tabeller sådan, at sådan UNION
udsagn er almindelige, er, at det gør primær og udenlandsk nøglestyring ret problematisk. Generelt er det næsten altid langt bedre først at sikre sig, at din datastruktur er klar og overskuelig, og derefter bekymre sig om optimering, end det er at bekymre sig om optimering og derefter prøve at gøre den optimerede løsning overskuelig.