sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Obteniendo filas de varias tablas con UNION ALL o usando una tabla en producción?

En general, encuentro que el uso extensivo de UNION sugiere un mal diseño de la base de datos. Hay casos en los que UNION y UNION ALL tienen sentido, pero deberían ser relativamente raros fuera de las expresiones de tablas comunes recursivas.

PostgreSQL proporciona una cantidad bastante grande de opciones para mantener manejable el rendimiento en una sola tabla y, como usted señala, los índices parciales son una muy buena manera de manejar este problema.

El principal problema de dividir tablas de tal manera que UNION Las declaraciones son comunes es que hace que la gestión de claves primarias y externas sea bastante problemática. En general, casi siempre es mucho mejor asegurarse de que su estructura de datos sea clara y manejable primero, y luego preocuparse por la optimización que preocuparse por la optimización y luego intentar que la solución optimizada sea manejable.