PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Zeilen aus mehreren Tabellen mit UNION ALL abrufen oder eine Tabelle in der Produktion verwenden?

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.