Im Allgemeinen finde ich diese umfangreiche Verwendung von UNION
deutet auf ein schlechtes Datenbankdesign hin. Es gibt Fälle, in denen UNION
und UNION ALL
Sinn machen, aber sie sollten außerhalb rekursiver allgemeiner Tabellenausdrücke relativ selten sein.
PostgreSQL bietet eine ziemlich große Anzahl von Optionen, um die Leistung einer einzelnen Tabelle überschaubar zu halten, und wie Sie bereits betont haben, sind Teilindizes eine sehr gute Möglichkeit, dieses Problem zu lösen.
Das Hauptproblem beim Aufbrechen von Tabellen ist, dass solche UNION
Aussagen üblich ist, dass es die Verwaltung von Primär- und Fremdschlüsseln ziemlich problematisch macht. Im Allgemeinen ist es fast immer viel besser, zuerst sicherzustellen, dass Ihre Datenstruktur klar und überschaubar ist, und sich dann um die Optimierung zu kümmern, als sich um die Optimierung zu kümmern und dann zu versuchen, die optimierte Lösung überschaubar zu machen.